Documentation Index
Fetch the complete documentation index at: https://docs.ixo.world/llms.txt
Use this file to discover all available pages before exploring further.
qiforge-cli (source) scaffolds new oracles, scaffolds new plugins inside an existing oracle, provisions on-chain identity + Matrix bots, and gives you an SSE chat client for testing.
Installation
protobufjs:
Commands at a glance
| Command | Purpose |
|---|---|
qiforge-cli | Interactive menu (auth → choose command). |
qiforge-cli --init / qiforge-cli init | Clone the QiForge boilerplate, create entity, write .env. |
qiforge-cli new <name> | Scaffold a standalone oracle from bundled code templates (no git clone). |
qiforge-cli plugin new <name> | Scaffold a new plugin into an existing oracle project. |
qiforge-cli create-entity | Create the on-chain entity record + Matrix bot. |
qiforge-cli update-entity | Update an existing entity (e.g. add controllers). |
qiforge-cli update-oracle-api-url | Update the oracle’s API URL (default is localhost). |
qiforge-cli setup-encryption-key | Set up the P-256 encryption key for an existing oracle. |
qiforge-cli create-composio-key | Mint a Composio API key tied to the oracle. |
qiforge-cli create-user | Create a new user account. |
qiforge-cli chat | Stream messages to a running oracle over SSE. |
qiforge-cli offline-login | Authenticate with a local mnemonic (no mobile app). |
qiforge-cli logout | Clear stored credentials. |
qiforge-cli --help, -h | Show help. |
Authentication
Two modes:SignX (default)
SignX (default)
Uses the IXO Mobile App for QR-code-based authentication. Keep the app open during the session.
Offline wallet
Offline wallet
Uses a local mnemonic. No mobile app needed. Credentials are stored in Non-interactive:Flags:
~/.wallet.json.Interactive:| Flag | Description |
|---|---|
--network | devnet, testnet, mainnet |
--mnemonic | Mnemonic phrase for wallet derivation. |
--matrixPassword | Matrix account password. |
--name | Display name (falls back to Matrix profile name). |
qiforge-cli —init
Scaffolds a new oracle project end-to-end by cloning the QiForge boilerplate:- Creates a project directory and clones the boilerplate.
- Creates a blockchain entity with linked resources stored in Matrix.
- Provisions a Matrix bot account.
- Writes
oracle.config.jsonand.env.
| Flag | Description | Default |
|---|---|---|
--name | Project name (required in non-interactive mode). | — |
--path | Project directory path. | ./<name> |
--repo | Template repository URL. | git@github.com:ixoworld/qiforge.git |
--force | Overwrite existing directory. | false |
create-entity flags (see below).
qiforge-cli new
Scaffolds a standalone oracle from bundled code templates — no git clone. Faster than--init, doesn’t need network access for the boilerplate, useful when you want a fork that diverges immediately.
pnpm install and can also create the oracle entity + Matrix account in the same flow.
qiforge-cli plugin new
Scaffolds a new plugin into an existing oracle project. Run it from inside the project; the CLI walks up to find apackage.json that depends on @ixo/oracle-runtime and writes the plugin there.
src/plugins/<name>/):
qiforge-cli create-entity
Creates the on-chain entity record and Matrix bot. Used both standalone (e.g. when re-provisioning) and as part of--init.
| Flag | Description | Default |
|---|---|---|
--network | devnet, testnet, mainnet. | devnet |
--oracle-name | Oracle name. | My oracle |
--price | Price in IXO credits. | 100 |
--org-name | Organisation name. | IXO |
--logo | Logo URL. | Auto-generated. |
--cover-image | Cover image URL. | Same as logo. |
--location | Location string. | New York, NY |
--description | Entity description. | Default placeholder. |
--website | Website URL. | — |
--api-url | Oracle API URL. | http://localhost:4000 |
--project-path | Project directory for saving config. | Current directory. |
--pin | 6-digit PIN for Matrix vault. | Prompted. |
--model | LLM model identifier. | moonshotai/kimi-k2.5 |
--skills | Comma-separated skill list. | — |
--prompt-opening | Opening prompt for the oracle. | — |
--prompt-style | Communication style. | — |
--prompt-capabilities | Capabilities description. | — |
--mcp-servers | JSON array [{"url":"..."}]. | — |
--model.
qiforge-cli update-entity
Updates an existing entity. Used to add controllers, rotate keys, or modify metadata after the initial create-entity.qiforge-cli update-oracle-api-url
Updates the URL the oracle entity advertises. Default islocalhost:4000; switch to your deployed URL before going live.
qiforge-cli setup-encryption-key
Provisions a P-256keyAgreement encryption key for an existing oracle that was created before encryption was mandatory.
qiforge-cli create-composio-key
Mints a Composio API key tied to your oracle’s DID. Required if your oracle uses the bundledcomposio plugin.
qiforge-cli create-user
Creates a new user account (DID + Matrix account) — useful for testing your oracle against multiple identities.qiforge-cli chat
Streams messages to a running oracle over SSE. Renders tool calls, assistant messages, and errors in the terminal.--init / new).
qiforge-cli logout
What --init writes
qiforge-oracle Claude Code skill at .claude/skills/qiforge-oracle/ so any AI agent you point at the project (Claude Code, Cursor, etc.) immediately has dense, scenario-specific guidance on the framework — adding plugins, adding tools, wiring env, writing tests with createTestRuntime, debugging boot. The skill is project-local: it ships inside every scaffolded oracle, no separate install needed. See the skill source in the CLI repo.
Generated .env skeleton:
Related references
- Identity and auth guide — what
create-entityandsetup-encryption-keyset up. - Environment variables — what to put in the
.envthe CLI writes. - CLI source — every command’s implementation.