Skip to content

CLI And Operations

This document covers the CLI commands that currently exist, the long-running service path, and the operator-facing commands that matter most in day-to-day use.

This is a current-implementation document. It does not describe target-only kernel behavior as if it were already fully shipped.

Top-Level Commands

Commands currently exposed by the CLI include:

  • setup
  • init
  • startup-prompt
  • run
  • chat
  • serve
  • reload
  • sessions
  • plugin
  • autostart
  • schedule
  • config
  • profiles
  • auth
  • task
  • memory

Basic Interactive Commands

hermit setup

Interactive first-run setup:

  • writes ~/.hermit/.env
  • can configure Feishu credentials
  • initializes the local workspace

hermit init

Initializes local state directories and baseline workspace files.

hermit startup-prompt

Prints the assembled startup prompt for debugging. Useful when you want to inspect:

  • base context
  • rules
  • skills
  • hook-injected fragments

hermit run "..."

Runs a one-shot task without entering an interactive session.

hermit chat

Starts an interactive multi-turn session.

Slash commands available in chat include:

  • /new
  • /history
  • /help
  • /quit
  • /compact
  • /plan
  • /usage

Service Lifecycle

hermit serve --adapter feishu

Starts the long-running service using the feishu adapter.

Current startup flow:

  1. load configuration
  2. run preflight checks
  3. discover plugins
  4. build runtime and kernel services
  5. start the adapter
  6. activate service hooks such as scheduler and webhook support

hermit reload --adapter feishu

Triggers a graceful reload for the running adapter process.

Use this when you want to rebuild configuration, plugins, and tools without treating the change as a full source-code hot reload.

For local source edits, prefer scripts/hermit-watch.sh dev or make env-watch ENV=dev instead of repeatedly combining serve and reload by hand. Watch mode takes over the target environment, keeps only one watcher per adapter, and avoids duplicate menubar instances.

Config, Profiles, And Auth

Useful inspection commands:

hermit config show
hermit profiles list
hermit profiles resolve --name codex-local
hermit auth status

These are the best first checks when the runtime is behaving differently than expected.

Task Kernel Commands

Hermit's most distinctive operator-facing surface lives under task.

Useful commands:

hermit task list
hermit task show <task_id>
hermit task events <task_id>
hermit task receipts --task-id <task_id>
hermit task case <task_id>
hermit task explain <task_id>
hermit task proof <task_id>
hermit task proof-export <task_id>
hermit task approve <approval_id>
hermit task approve-always-directory <approval_id>
hermit task deny <approval_id> --reason "not safe"
hermit task resume <approval_id>
hermit task rollback <receipt_id>
hermit task projections-rebuild --all

Capability-grant commands:

hermit task capability list
hermit task capability revoke <grant_id>

These commands are part of what makes Hermit feel like a governed kernel rather than only a conversational shell.

Memory Commands

Memory-related operator commands:

hermit memory inspect <memory_id>
hermit memory inspect --claim-text "Use uv for local Python workflows"
hermit memory list --status active
hermit memory status
hermit memory rebuild

Use these when you want to inspect evidence-bound memory behavior rather than generic conversation memory.

Plugin Commands

Plugin management:

hermit plugin list
hermit plugin install <git-url>
hermit plugin info <name>
hermit plugin remove <name>

Hermit's plugin model is still a major extension surface, even as the kernel becomes more central.

Scheduler Commands

List schedules:

hermit schedule list

Create a schedule:

hermit schedule add \
  --name "daily-summary" \
  --prompt "Summarize the latest project changes" \
  --cron "0 18 * * 1-5"

Other schedule commands:

hermit schedule remove <id>
hermit schedule enable <id>
hermit schedule disable <id>
hermit schedule history --job-id <id>

Scheduled work is stored in the kernel-backed schedule state and later picked up by hermit serve.

Autostart Commands

macOS launchd support:

hermit autostart enable --adapter feishu
hermit autostart disable --adapter feishu
hermit autostart status

Like serve and reload, these commands currently use --adapter.

Sessions

List known session files:

hermit sessions

Session persistence is still present in the broader runtime, even as task semantics become more central.

Docker

The service entrypoint in containerized setups should match the actual CLI:

hermit serve --adapter feishu

Practical Operator Flow

When something important happened and you want the shortest path to clarity:

  1. hermit task show <task_id>
  2. hermit task proof <task_id>
  3. hermit task receipts --task-id <task_id>
  4. hermit task events <task_id>
  5. hermit task rollback <receipt_id> if recovery is supported and appropriate