Axon, Java, Python, JavaScript SDKs, and a CLI — all connecting to the same secure, AI-powered stack.
XetoBase exposes its full capabilities through multiple interfaces. Use Axon for in-platform scripting and Observable triggers. Use the Java, Python, or JavaScript SDKs to integrate XetoBase into external applications. Use the xb CLI for local development, deployments, and automation. All SDKs share the same underlying API and auth model.
com.xetobase:sdk
pip install xetobase
npm install @xetobase/sdk
xb login, xb deploy
XetoBase's native sandboxed scripting language — runs on client and server.
Axon is the language of XetoBase. Every query, every Observable trigger, every ION component function, and every Wooley response handler is written in Axon. It's a functional, expression-based language with a small but powerful standard library.
Because Axon runs inside a hardened sandbox, it's safe to let AI generate and execute Axon scripts — there's no risk of code escaping the runtime. This is what makes the Wooley AI integration possible: Wooley generates valid Axon and the platform executes it safely.
Reading records
Observable trigger
Calling Wooley from Axon
Core Axon Functions
| Function | Description |
|---|---|
| readAll(Spec) | Return all records matching the given xeto spec type |
| read(Spec, id) | Read a single record by spec type and ID |
| create(Spec, data) | Create a new record; validates against spec before writing |
| update(rec, changes) | Update fields on an existing record |
| delete(rec) | Delete a record (audited) |
| observe(Spec, event, fn) | Register an Observable trigger function |
| wooley(prompt) | Call the Wooley AI agent with a prompt or options map |
| notify(target, msg) | Send a notification to a user, team, or webhook |
| now() | Current UTC timestamp as DateTime |
| today() | Start of today as a Date value |
| ionWidget(opts) | Define an ION UI widget component declaratively |
| .filter(fn) | Filter a record set with a predicate function |
| .sortBy(field, dir) | Sort a record set by a field, ascending or descending |
| .limit(n) | Limit a record set to at most n results |
| .aggregate(field, fn) | Aggregate a numeric field: avg, sum, min, max, count |
Integrate XetoBase into your Java applications using the official SDK.
Coming SoonMaven
Gradle
Usage
XetoBaseClient Methods
| Method | Description |
|---|---|
| client.query(axon) | Execute an Axon expression and return results as a RecordSet |
| client.records(spec) | List all records of a given xeto spec type |
| client.record(spec, id) | Fetch a single record by spec type and ID |
| client.create(spec, data) | Create a new record; server validates against spec |
| client.update(id, changes) | Patch an existing record with a map of field changes |
| client.delete(id) | Delete a record by ID (audited on server) |
| client.observe(spec, event, fn) | Register a local callback for server-side Observable events |
| client.wooley(prompt) | Send a prompt to the Wooley AI agent; returns a string or structured result |
Use XetoBase from Python scripts, Jupyter notebooks, data pipelines, and more.
Coming SoonInstall
Usage
XetoBaseClient Methods
| Method | Description |
|---|---|
| client.query(axon) | Execute an Axon string and return results as a list of dicts |
| client.records(spec) | Return all records of a given xeto spec type as a list |
| client.record(spec, id) | Fetch a single record by spec type and string ID |
| client.create(spec, data) | Create a new record from a dict; validates on server |
| client.update(id, changes) | Update fields on an existing record with a partial dict |
| client.delete(id) | Delete a record by string ID |
| client.observe(spec, event, fn) | Subscribe to Observable events with a Python callback |
| client.wooley(prompt) | Send a natural language prompt to Wooley; returns string or dict |
Use XetoBase from Node.js, browsers, and modern JS frameworks (React, Vue, Svelte).
Coming SoonInstall
Node.js / ESM Usage
XetoBaseClient Methods
| Method | Description |
|---|---|
| client.query(axon) | Execute an Axon string; returns Promise<Record[]> |
| client.records(spec) | List all records of a spec type; returns Promise<Record[]> |
| client.record(spec, id) | Fetch a single record by spec type and ID |
| client.create(spec, data) | Create a record; server validates against xeto spec |
| client.update(id, changes) | Partially update a record with an object of changes |
| client.delete(id) | Delete a record; returns Promise<void> |
| client.observe(spec, event, fn) | Subscribe to Observable events via SSE; calls fn on each event |
| client.wooley(prompt) | Prompt the Wooley AI agent; returns Promise<string | object> |
The xb command-line tool for local development, deployments, and automation.
Install
Authentication
Deployment
Records
Observables
Wooley CLI
CLI Command Reference
| Command | Description |
|---|---|
| xb login | Authenticate with a XetoBase instance; stores token locally |
| xb whoami | Display the currently authenticated user and instance URL |
| xb deploy | Deploy the current project (Axon scripts, Observables, ION UIs) |
| xb records list | List records of a given spec type with optional filter |
| xb records export | Export records to a JSON or CSV file for backup or migration |
| xb records import | Import records from a JSON file; validates each record against spec |
| xb observe list | Show all registered Observable triggers in the current project |
| xb observe add | Register a new Observable from an Axon file and spec/event pair |
| xb observe remove | Remove an Observable trigger by its ID |
| xb observe tail | Stream live Observable event logs for a spec type to the terminal |
| xb wooley ask | Send a prompt to Wooley from the terminal; prints the response |
| xb wooley chat | Start an interactive Wooley chat session in the terminal |
| xb specs list | List xeto.dev specs available in the current project's dependencies |
| xb specs add | Add a xeto.dev spec library to the current project |
Join the waitlist and get early developer access when we launch.