Skip to content

Command reference

This page lists commonly used Bestie CLI commands. Run commands from the environment where the bestie package is installed, not from the docs-site repository unless you are only building documentation.

First run

Install, onboard, verify, then chat.

bestie onboard
Channels

Manage Telegram and Zalo under the channel namespace.

bestie channels list
Background

Use daemon for manual processes or service for OS-managed startup.

bestie service status
Terminal window
npm install -g bestie-agent
bestie --help
bestie onboard
bestie onboard --skip-provider-test
bestie status
bestie logs
bestie doctor
Terminal window
bestie llm providers
bestie llm setup --provider openai --set-default
bestie llm setup --provider anthropic
bestie llm setup --provider gemini
bestie llm setup --provider ollama
bestie llm models --provider openai
bestie llm models add --model openai/gpt-4.1 --profile openai:api-key
bestie llm models remove --model openai/gpt-4.1
bestie llm test --model openai/gpt-4.1
bestie llm profiles list
bestie llm profiles show --profile openai:api-key
bestie llm profiles remove --profile openai:api-key
bestie llm fallbacks list
bestie llm fallbacks add --model anthropic/claude-sonnet-4-5
bestie llm fallbacks remove --model anthropic/claude-sonnet-4-5

bestie llm setup writes provider profiles and model catalog entries. Existing primary models stay active unless you pass --set-default. Antigravity appears as a future OAuth provider, but OAuth setup is not implemented yet.

Terminal window
bestie chat

Inside terminal chat:

/help
/status
/memory
/memory pause
/memory resume
/pending
Terminal window
bestie agents list
bestie agents hire --id docs --name "Docs Editor" --role documentation --description "Maintain local product docs."
bestie agents assign --agent docs --brief "Review the onboarding guide."
bestie agents tasks --agent docs --status queued
bestie agents run --agent docs --limit 1
bestie agents pause docs
bestie agents resume docs

See Agent Workforce for the local task-queue workflow and task status values.

Terminal window
bestie ui
bestie ui --no-open
bestie ui --port 8717
bestie ui --port 0 --no-open

The command prints the local URL; open that URL in a browser yourself and keep the command running until you are done. Browser auto-open is not implemented yet, so --no-open currently only prints a shorter keep-running message. The local console exposes runtime status, Doctor, providers, character, memory, channels, approvals, MCP, tools, and settings against the same ~/.bestie/ runtime files.

Terminal window
bestie doctor
bestie doctor --json
bestie doctor --fix
bestie doctor --telegram-connect
bestie doctor --zalo-connect
bestie doctor --telegram-speech-test

Skills are reusable prompt packs loaded from ~/.bestie/skills/<skill-name>/SKILL.md and injected into chat prompts.

Terminal window
bestie skills
bestie skills list
Terminal window
bestie update
bestie update --apply

bestie update checks npm for a newer release. bestie update --apply runs npm install -g bestie-agent@latest.

Terminal window
bestie channels
bestie channels list
bestie channels status
bestie channels doctor
bestie channels doctor --channel telegram --connect
bestie channels doctor --channel zalo --connect --json

Legacy top-level channel commands are replaced by bestie channels telegram and bestie channels zalo.

Terminal window
bestie channels telegram setup
bestie channels telegram whoami
bestie channels telegram
bestie channels telegram --once
bestie channels telegram --once --transcript ~/.bestie/logs/telegram-smoke.jsonl

Supported owner slash commands include /start, /help, /status, /doctor, /providers, /memory, /memory pending, /approvals, /approve <id>, and /deny <id>.

Terminal window
bestie channels zalo setup
bestie channels zalo
bestie channels zalo --once
bestie channels zalo --once --transcript ~/.bestie/logs/zalo-smoke.jsonl
bestie channels zalo --transcript ~/.bestie/logs/zalo-smoke.jsonl --capture-shape

Zalo is currently owner-only and text-only.

Terminal window
bestie voice setup-local
bestie voice setup-elevenlabs
bestie voice models
bestie voice download-model small
bestie voice download-model small --confirm --use

bestie channels telegram voice ... may exist as a compatibility alias, but new docs should use the top-level bestie voice ... commands because voice is a shared capability.

Terminal window
bestie cron add
bestie cron add --name daily-priority-check --type cron_expr --schedule "0 9 * * *" --prompt "Summarize today's priorities."
bestie cron list
bestie cron logs
bestie cron logs 3
bestie cron toggle 3
bestie cron remove 3
bestie cron rm 3
bestie cron run

Cron jobs run as isolated Bestie turns. Keep prompts narrow and do not put secrets in schedule prompts.

Terminal window
bestie daemon start --channel telegram
bestie daemon start --channel zalo
bestie daemon start --channel cron
bestie daemon start --channel all
bestie daemon status --channel all
bestie daemon restart --channel telegram
bestie daemon stop --channel all
Terminal window
bestie service install
bestie service status
bestie service restart
bestie service uninstall

The service command manages user-level startup integration: Linux systemd, macOS launchd, or a Windows Startup shortcut. Linux uses one bestie.service for configured service targets.

Terminal window
bestie memory status
bestie memory pause
bestie memory resume
bestie memory list
bestie memory list --scope core
bestie memory tiers
bestie memory summary
bestie memory search concise
bestie memory add communication_preference "User prefers concise replies."
bestie memory inspect 1
bestie memory edit 1 "Updated memory text."
bestie memory pin 1
bestie memory unpin 1
bestie memory move 1 --scope project
bestie memory supersede 1 2
bestie memory forget 1
bestie memory messages --limit 5 --role user
bestie memory messages search project --limit 5 --role assistant
bestie memory export
bestie memory clear --yes
bestie memory pending --limit 5
bestie memory pending search hanoi --limit 5
bestie memory pending inspect 1
bestie memory approve 1
bestie memory reject 1
bestie memory reject-all --yes
bestie memory analyze --mode duplicates
bestie memory cleanup --dry-run
bestie memory cleanup --apply --yes
bestie memory hygiene status
bestie memory hygiene doctor --fix
bestie memory hygiene trend
bestie memory rebalance --dry-run
bestie memory rebalance --apply --yes
bestie memory maintenance install --channel telegram:123456789
bestie memory maintenance status
bestie memory governance policy governed
Terminal window
bestie memory graph status
bestie memory graph search Bestie
bestie memory graph entities --kind project
bestie memory graph relations --limit 20
bestie memory graph inspect entity 1
bestie memory graph inspect relation 1
bestie memory graph add entity project Bestie
bestie memory graph add relation 1 works_on 2 "Owner is building Bestie."
bestie memory graph analyze --json
bestie memory graph hygiene --json
bestie memory graph review --limit 5
bestie memory graph pending --limit 10
bestie memory graph pending inspect 1
bestie memory graph pending sanitize 1
bestie memory graph approve 1
bestie memory graph reject 1
bestie memory graph merge entity 1 2 --yes
bestie memory graph update relation 1 --confidence 0.8 --evidence "Verified evidence" --yes
bestie memory graph forget relation 1 --yes
bestie memory graph export

Graph writes and cleanup follow memory and delete policies. Do not store secrets as graph evidence.

Terminal window
bestie tools logs --lines 20
bestie tools memories --limit 5
bestie tools git status
bestie tools git diff
bestie tools git diff --staged
bestie tools git log --limit 5
bestie tools attachments cleanup --older-than 7d --kinds voice,audio
bestie tools attachments cleanup --older-than 7d --kinds voice,audio --confirm

Attachment cleanup is a dry run until --confirm is included.

Terminal window
bestie mcp list
bestie mcp add remote-docs --url https://example.com/mcp --transport streamable-http
bestie mcp add remote-docs --url https://example.com/mcp --oauth-client-id bestie-local
bestie mcp login remote-docs
bestie mcp login remote-docs --code <code>
bestie mcp show remote-docs
bestie mcp test remote-docs
bestie mcp test remote-docs --connect
bestie mcp tools remote-docs --connect
bestie mcp classify remote-docs read_file --category read
bestie mcp call remote-docs read_file --read --json '{"path":"README.md"}'
bestie mcp call remote-docs read_file --read --ask --json '{"path":"README.md"}'

Run these from the Bestie core repository:

Terminal window
npm run build
npm test
npm run smoke
npm run smoke:ui
npm run smoke:ui:all
npm run eval:character

Real Telegram smoke is opt-in and requires a fresh owner message:

Terminal window
BESTIE_TELEGRAM_REAL_SMOKE=1 npm run smoke:telegram:real

Real Zalo smoke is opt-in and requires configured Zalo credentials:

Terminal window
npm run smoke:zalo:real