Skip to content

CLI

The gaia command-line interface. Run gaia --help or gaia <group> --help for the live version of any of these.

Inspect and manage ACL capabilities.

Grant a user a capability.

gaia acl grant <ref> <capability>

List the capability groups and the tools each grants.

gaia acl list

Show a user’s effective capabilities (role defaults + grants, minus denies).

gaia acl perms <ref>

Revoke a capability from a user.

gaia acl revoke <ref> <capability>

Chat with Gaia in the local terminal.

gaia chat

Inspect and edit gaia.yaml.

Open gaia.yaml in $EDITOR; warn if the result doesn’t parse.

gaia config edit

Print one config value (the effective value, including schema defaults).

gaia config get <key>

Print the path to the active gaia.yaml.

gaia config path

Set a config value in gaia.yaml (comment-preserving).

gaia config set <key> <value>

Set up chat connectors: pick them from a menu, then connect each one.

gaia connect <connectors> [options]
Option Description
--token Telegram bot token (skips the prompt).
--verify Check the telegram token via getMe.
--timeout Seconds to wait for the WhatsApp QR scan.

Schedule jobs gaia runs on its own.

Disable a job without deleting it.

gaia cron disable <job_id>

Open the whole job file in $EDITOR (crontab -e style); validates on save.

gaia cron edit

Enable a disabled job.

gaia cron enable <job_id>

List every scheduled job.

gaia cron list

Add a job: EXPR MESSAGE, or –every N / –at WHEN with MESSAGE.

gaia cron new <expr> <message> [options]
Option Description
--every Interval in seconds (min 30).
--at One-shot ISO datetime (auto-deletes).
--name Short label.
--channel Deliver to this connector (telegram/whatsapp).
--chat Chat id on that connector.

Delete a job.

gaia cron rm <job_id>

Print one job in full (raw JSON with –json).

gaia cron show <job_id>

Launch ADK’s dev web UI on Gaia — inspect tool calls and LLM requests live.

gaia dev [options]
Option Description
--host Dev web UI host.
--port Dev web UI port.

Run offline health checks and report OK/WARN/FAIL per item (exit 4 on any FAIL).

gaia doctor

Run and review gaia’s self-improvement.

List the skill/soul changes in git history (newest first).

gaia grow list

Revert one change by commit sha (a new commit undoing it).

gaia grow revert <commit>

Run one self-improve cycle now. Default applies autonomously; --dry-run previews;

gaia grow run [options]
Option Description
--dry-run Analyze and print proposals without applying.
-i, --interactive Approve each proposal before applying.

Show a change’s full commit message + diff.

gaia grow show <commit>

Tail (and optionally follow) one of Gaia’s log files.

gaia logs [options]
Option Description
-f, --follow Follow the file (survives rotation).
-n, --lines How many trailing lines to print.
--errors Show errors.log (WARNING+).
--events Show events.jsonl (structured activity).
--daemon Show daemon.log (start/serve).
--json With –events: print raw JSON lines, not pretty.

Inspect and clear long-term memory.

Wipe a user’s long-term memory (destructive).

gaia memory forget <user> [options]
Option Description
--yes, -y Skip the confirmation.

List what gaia remembers about a user long-term.

gaia memory list <user>

Configure the LLM: pick a provider, authenticate (API key or ChatGPT sign-in), pick a model.

gaia model [options]
Option Description
--provider Model provider: openai
--oauth OpenAI: Sign in with ChatGPT (not an API key).
--api-key API key (non-interactive).
--model Model id (e.g. gpt-4o, gemini-2.5-flash).

Run gaia’s self-monitoring (error-log triage).

Run one monitor cycle now. Default reports new findings (DM admin); --dry-run previews.

gaia monitor run [options]
Option Description
--dry-run Analyze and print findings without reporting.

Send one message through the multi-user dispatcher and print the reply.

gaia msg <text> [options]
Option Description
--user The SENDER id (not a role), e.g. ‘972…@s.whatsapp.net’ or ‘12345’.
--channel Channel the sender is on (whatsapp/telegram/cli).
--name Display name for a first-seen sender.

Bundle the latest crash + recent logs + your environment into a GitHub bug report.

gaia report [options]
Option Description
--all Include every crash report, not just the last.
--no-open Print the URL instead of opening a browser.

Restart the daemon (stop if running, then start).

gaia restart [options]
Option Description
--timeout Seconds to wait for graceful shutdown before SIGKILL.

Run the background connectors in the foreground (what the daemon executes).

gaia serve [options]
Option Description
--hold Keep running with zero connectors (testing / service debugging).

Run gaia as a boot service (launchd on macOS, systemd –user on Linux).

Install + start the service (runs at login, restarts on crash).

gaia service install

Show the service state (defers to launchctl / systemctl).

gaia service status

Stop + remove the service.

gaia service uninstall

Configure gaia: model, connectors, search, tools.

gaia setup

List, author, install, and manage skills.

Install skill(s) from a local folder or a git repo into the skills dir.

gaia skill install <source> [options]
Option Description
--name Rename the id (single-skill installs only).
--force Overwrite existing skill(s).

List every installed skill (id + description).

gaia skill list

Author a new skill — manually, from a file, or drafted by a model (–from).

gaia skill new <name> [options]
Option Description
--description One-line description.
--instruction-file Read the SKILL.md body from this file.
--from Have a model draft the skill from this one-line brief.
--force Overwrite existing skill(s).

Delete skills by id, glob (huashu-*), or ‘all’.

gaia skill rm <patterns> [options]
Option Description
--yes, -y Skip the confirmation.

Print a skill’s description and full instructions (SKILL.md body).

gaia skill show <skill_id>

Create, inspect, and manage reusable souls.

Open a soul’s Markdown in $EDITOR, re-validate it on save, and store it.

gaia soul edit <key>

List every stored soul (key, name, model, description).

gaia soul list

Create a soul — manually (no model key) or, with –ai, via the soul-smith.

gaia soul new <name> [options]
Option Description
--description What the soul is for.
--instruction The soul’s system prompt.
--instruction-file Read the instruction from this file instead.
--model Model id (default: config llm.model).
--skill Skill id (repeatable).
--tool Tool id to pin (repeatable).
--style Voice (default: config default_communication_style).
--ai Let the soul-smith author the spec from this TASK (needs a model key).
--force Overwrite an existing soul with the same key.
--no-input Never prompt; fail if a field is missing.
--yes, -y With –ai: skip confirmation prompts.

Delete a soul by key (asks for confirmation unless –force).

gaia soul rm <key> [options]
Option Description
--force Delete without confirmation.

Print every field of one soul (raw JSON with –json).

gaia soul show <key>

Start the daemon in the background (see ‘gaia status’ / ‘gaia stop’).

gaia start

Show daemon state: pid, uptime, connectors, model, log paths.

gaia status

Stop the running daemon (SIGTERM, then SIGKILL after –timeout).

gaia stop [options]
Option Description
--timeout Seconds to wait for graceful shutdown before SIGKILL.

Show or set Gaia’s communication style (voice).

gaia style <name>

Inspect the missions task board.

List tasks on the board (newest first).

gaia task list [options]
Option Description
--mission Only this mission’s tasks.
--status Only tasks in this status.
--user Only this owner’s tasks.

Print one task in full (raw JSON with –json).

gaia task show <task_id>

Configure tools: browser, web search, custom MCP servers (and --all to toggle the rest).

gaia tools [options]
Option Description
--all Enable/disable the optional on/off tools too.

Remove gaia. Asks before deleting ~/.gaia unless –purge/–keep is given.

gaia uninstall [options]
Option Description
--purge Also delete ~/.gaia (non-interactive).
--keep Keep ~/.gaia (non-interactive).

Upgrade gaia in place (re-pull from git); restart the daemon if it’s running.

gaia update [options]
Option Description
--ref git ref to install (branch/tag/sha).
--extras Extras to install (default: all).

Manage known users (roles, names, channels).

Attach another channel id (‘channel:sender’) to a user.

gaia user link <ref> <identity>

List known users — id, name, role, and the channels that reach them.

gaia user list

Set a user’s display name.

gaia user name <ref> <name>

Delete a user from the store.

gaia user rm <ref> [options]
Option Description
--yes, -y Skip the confirmation.

Set a user’s role (approve a guest).

gaia user role <ref> <role>

Print every field of one user (raw JSON with –json).

gaia user show <ref>

Print the gaia version, Python version, and install location.

gaia version