qiforge-cli npm package and runs as the qiforge-cli binary (source). It 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 new <name> | Scaffold a new oracle from the bundled starter. |
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 registered API URL/domain. |
qiforge-cli setup-encryption-key | Provision the oracle’s encryption/signing key. |
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 signx-login | Authenticate via SignX QR (IXO Mobile App). |
qiforge-cli offline-login | Authenticate with a local mnemonic (no mobile app). |
qiforge-cli logout | Clear stored credentials. |
qiforge-cli help | Show help. |
--chat | Flag — start a chat session with a running oracle. |
--help, -h | Flag — 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 new
Scaffolds a new oracle from the bundled starter template — no git clone. Interactive by default: it walks you through auth, network, the oracle profile, and entity creation, then writes the project.--name is required:
| Flag | Description | Default |
|---|---|---|
--name | Project name (required with --no-interactive). | — |
--path | Directory to scaffold into. | ./<name> |
--template | Starter template. | basic |
--description | Oracle description. | — |
--org | Organisation name. | IXO |
--install | Run the package install after scaffolding. | false |
--force | Overwrite an existing directory. | false |
--no-interactive | Skip prompts (requires --name). | false |
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.
--cwd — the directory to resolve the oracle project from (defaults to the current directory).
Generated layout (under src/plugins/<name>/):
qiforge-cli create-entity
Creates the on-chain entity record and Matrix bot, and writesoracle.config.json + .env. Used both standalone (e.g. when re-provisioning) and as part of new.
create-entity registers --api-url http://localhost:4000 by default, but the runtime’s own default PORT is 3000. If you take the default URL, make your running oracle reachable at it: either set PORT=4000 in your .env to match, or update the registered URL later with qiforge-cli update-oracle-api-url.| 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 ishttp://localhost:4000; switch to your deployed URL before going live.
qiforge-cli setup-encryption-key
Provisions the oracle’s encryption/signing key into its Matrix account room — the P-256keyAgreement key used to decrypt per-room secrets, plus the signing material the runtime uses to mint downstream UCAN invocations. Until it’s provisioned, authenticated routes return 401 and the boot log warns about the missing key.
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.—chat
Starts a chat session with a running oracle over SSE — renders tool calls, assistant messages, and errors in the terminal. It’s a flag, not a subcommand:new).
qiforge-cli logout
What qiforge-cli new 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.