Skip to main content

Commands

Adjutant has two command interfaces: Telegram slash commands (sent from your phone) and the adjutant CLI (run from your terminal). Both reach the same underlying system.


Telegram Commands

Send these to your Adjutant bot in Telegram. Commands are only accepted from the chat ID configured in .env.

Status and monitoring

CommandWhat it does
/statusShows whether Adjutant is up and running, paused, or killed — plus scheduled jobs, last autonomous cycle, and notification count today
/pulseQueries all registered KBs in parallel for a quick status update — current state, blockers, and upcoming deadlines. Uses kb query-all internally for ~6x speedup over sequential queries.
/briefMorning brief — compiles deadlines, priorities, and overnight changes from all KBs into a scannable daily summary. Queries all KBs in parallel via kb query-all.
/reflectRequests a deep reflection using the medium model (Sonnet). Queries all KBs in parallel in depth and encourages read-write KBs to update stale data. Adjutant will ask for /confirm before proceeding
/confirmConfirms a pending /reflect. If you don't send this, the reflection is cancelled
/self-assessWeekly self-assessment — reviews journal entries, notification effectiveness, and priority alignment. Proposes improvements to insights/pending/ for your review. Also available as /selfassess or /assess.

Control

CommandWhat it does
/pauseSoft pause — Adjutant stops processing new messages. The listener stays running so it can be resumed without a restart
/resumeResumes from a pause
/restartRestarts all services
/killEmergency shutdown — kills all processes, removes cron jobs, and sets a KILLED lockfile. Requires adjutant startup to recover (see Lifecycle)

Capabilities

CommandWhat it does
/screenshot <url>Takes a full-page screenshot of the URL and sends it back as an image. Automatically generates a visual description caption using the vision model. Requires Playwright to be installed.
/search <query>Searches the web via the Brave Search API and returns the top 5 results (title, URL, description). No browser automation — fast, token-efficient, and not subject to bot detection. Requires BRAVE_API_KEY in .env.
/kbLists all registered knowledge bases
/kb query <name> <question>Queries a specific knowledge base with your question. Example: /kb query my-project what's the current status?
/kb query-all [question]Queries ALL registered KBs in parallel and returns combined results. Uses each KB's query_hint for targeted questions. Optionally provide a custom question.
/kb cross-query <kb1,kb2> <question>Queries multiple KBs in parallel and synthesizes a cross-domain answer. Example: /kb cross-query ixda,fagkomite any scheduling conflicts?
/kb write <name> <instruction>Writes to a read-write knowledge base. The sub-agent performs the requested update within the KB's sandbox. Only works for KBs with access: read-write.
/scheduleLists all registered scheduled jobs with enabled/disabled status and schedule
/schedule run <name>Runs a scheduled job immediately. Output is sent to chat.
/schedule enable <name>Enables a job and installs its crontab entry
/schedule disable <name>Disables a job and removes its crontab entry (keeps the registry entry)

Memory

CommandWhat it does
/remember <text>Saves something to long-term memory. Auto-classified into the right category (corrections, decisions, preferences, etc.)
/forget <topic>Archives memory entries matching a topic. Entries are moved to .archive/, not deleted.
/recall [query]Searches long-term memory for entries matching a query. With no query, shows the memory index.
/digestCompresses recent journal entries (past 7 days) into a weekly memory summary.

Configuration

CommandWhat it does
/modelShows the currently active tier and the configured cheap / medium / expensive mappings, including reasoning effort
/model <tier>Switches Telegram chat to one of the configured tiers only: cheap, medium, or expensive. Example: /model medium.

Help

CommandWhat it does
/helpLists all available commands
/startAlias for /help — sent automatically by Telegram when you first open the bot

Natural language

Any message that doesn't start with / is treated as a natural language query. Adjutant passes it to the AI agent with your full identity context loaded (soul.md, heart.md, registry.md). You can ask anything — questions about your projects, requests to draft something, queries about knowledge bases.

If a long-running response is in progress when you send a new message, the previous job is cancelled and the new one starts immediately.


CLI Commands

Run from your terminal after adding the adjutant alias to your shell profile.

Service management

adjutant start        # Start the Telegram listener
adjutant stop # Stop the Telegram listener
adjutant restart # Restart all services
adjutant status # Show system status (OPERATIONAL/PAUSED/KILLED)

Lifecycle control

adjutant pause        # Pause Adjutant (soft stop — listener stays running)
adjutant resume # Resume from pause
adjutant kill # Emergency shutdown (hard stop — requires startup to recover)
adjutant startup # Full startup, or recovery from KILLED state
adjutant update # Self-update to the latest release

Autonomous cycles

adjutant pulse        # Run the quick autonomous pulse (queries all KBs)
adjutant review # Run the deep autonomous review
adjutant brief # Run the proactive morning brief (daily summary + deadlines)
adjutant self-assess # Run the weekly self-assessment (evaluate + propose improvements)

See Lifecycle for when to use each of these.

Sending messages

adjutant notify "Your message here"   # Send a Telegram notification (respects daily budget)
adjutant reply "Your message here" # Send a Telegram reply (Markdown, no budget cap)
adjutant screenshot https://example.com # Take and send a screenshot
adjutant search "query" # Search the web via Brave API (prints results)
adjutant news # Run the news briefing pipeline manually

Knowledge bases

adjutant kb list                      # List registered knowledge bases
adjutant kb create # Interactive KB creation wizard
adjutant kb create --quick \
--name my-kb \
--path /path/to/kb \
--desc "What this KB is about" # Quick non-interactive create (--desc, not --description)
adjutant kb info <name> # Show details about a KB
adjutant kb query <name> "question" # Query a KB
adjutant kb query-all # Query ALL KBs in parallel (uses each KB's query_hint)
adjutant kb query-all -q "question" # Query ALL KBs with a custom question
adjutant kb cross-query "question" \
--kbs ixda,fagkomite # Query multiple KBs and synthesize a cross-domain answer
adjutant kb run <name> <operation> # Run a KB-local operation by convention
adjutant kb remove <name> # Unregister a KB (files are NOT deleted)

Scheduled jobs

adjutant schedule list              # List all jobs: name, enabled, schedule, description
adjutant schedule add # Interactive wizard to register a new scheduled job
adjutant schedule enable <name> # Enable job → install crontab entry
adjutant schedule disable <name> # Disable job → remove crontab entry, keep registry
adjutant schedule remove <name> # Remove from registry and crontab
adjutant schedule sync # Reconcile crontab with registry (idempotent)
adjutant schedule run <name> # Run a job immediately in foreground (for testing)

See Schedules for the full guide including generic KB-backed scheduled jobs.

Memory

adjutant memory init              # Initialise the memory directory structure
adjutant memory remember "text" # Store a memory entry (auto-classified)
adjutant memory forget "topic" # Archive memory entries matching a topic
adjutant memory recall # Show the memory index
adjutant memory recall "query" # Search long-term memory
adjutant memory digest # Compress journal entries into weekly summary
adjutant memory digest --days 14 # Digest the last 14 days instead of 7
adjutant memory status # Show memory system stats

Maintenance

adjutant rotate       # Archive old journal entries and rotate logs
adjutant logs # Tail the live log (state/adjutant.log)
adjutant doctor # Health check: dependencies, credentials, config files, state
adjutant setup # Interactive setup wizard (first run or repair)
adjutant setup --repair # Repair mode — checks and fixes an existing install

Help

adjutant --help              # Show all commands
adjutant kb --help # Show KB subcommand help
adjutant schedule --help # Show schedule subcommand help

adjutant doctor output

Run adjutant doctor to see the health of your installation:

Adjutant Health Check
=====================

Installation: /Users/you/adjutant
OS: Darwin

Dependencies:
bash OK (GNU bash, version 5.2.15)
curl OK (curl 8.4.0)
jq OK (jq-1.7)
python3 OK (Python 3.12.0)
claude OK (/opt/homebrew/bin/claude) # or opencode, depending on llm.backend

Optional:
playwright not installed (needed for screenshot)

Configuration:
adjutant.yaml present
.env present
identity/soul.md present
identity/heart.md present
identity/registry.md present
news_config.json present
opencode.json present

State:
Status: operational
Listener: Running (PID 12345)

The backend-specific binaries shown depend on llm.backend in adjutant.yaml. With opencode, doctor checks for the opencode binary. With claude-cli, it checks for claude.

If adjutant doctor reports missing dependencies or configuration, run adjutant setup --repair to fix them interactively.