houmao-mgr¶
Houmao pair CLI with native server and managed-agent command families.
houmao-mgr is the primary management CLI for local lifecycle, managed agents, mailbox administration, packaged Houmao-owned system-skill installation, repo-local project overlays, and houmao-server control. It provides native command groups for agent orchestration, filesystem mailbox administration, brain construction, explicit tool-home skill installation, project bootstrap, server management, and administrative tasks.
Synopsis¶
The root help surface for houmao-mgr --help and bare houmao-mgr invocation includes a direct pointer to the published detailed docs site at https://igamenovoer.github.io/houmao/.
Root Options¶
| Option | Description |
|---|---|
--version |
Print the packaged Houmao version and exit successfully without requiring a subcommand. |
--print-plain |
Human-readable aligned text (default). |
--print-json |
Machine-readable JSON with stable formatting (indent=2, sort_keys=True). |
--print-fancy |
Rich-formatted output with tables, panels, and colors (requires a terminal that supports ANSI escape codes). |
--version is a root CLI reporting option. It prints the packaged Houmao version for the current houmao-mgr binary and exits successfully without running a subcommand.
Output Style¶
All houmao-mgr commands support three output modes controlled by root-level flags:
| Flag | Description |
|---|---|
--print-plain |
Human-readable aligned text (default). |
--print-json |
Machine-readable JSON with stable formatting (indent=2, sort_keys=True). |
--print-fancy |
Rich-formatted output with tables, panels, and colors (requires a terminal that supports ANSI escape codes). |
The flags are mutually exclusive. When none is provided, the HOUMAO_CLI_PRINT_STYLE environment variable selects the active mode. Valid values are plain, json, and fancy (case-insensitive). When neither a flag nor the environment variable is set, the default is plain.
Resolution precedence: explicit CLI flag → HOUMAO_CLI_PRINT_STYLE → plain.
Scripts and automation that previously relied on JSON-by-default output must add --print-json or set HOUMAO_CLI_PRINT_STYLE=json to preserve machine-readable output.
Command Groups¶
admin — Administrative commands¶
Administrative utilities for the Houmao environment.
For dedicated coverage, see admin cleanup.
The canonical cleanup tree is houmao-mgr admin cleanup registry plus houmao-mgr admin cleanup runtime {sessions,builds,logs,mailbox-credentials}. Registry cleanup probes tmux-backed records locally by default and accepts --no-tmux-check for lease-only cleanup. Human-oriented cleanup output prints each populated action bucket line by line; use --print-json when you need the structured payload.
agents — Agent lifecycle¶
Agent lifecycle: launch, stop, observe, send-prompt, mail, join, gateway operations.
For dedicated coverage of complex nested command families, see:
- agents gateway — gateway lifecycle and explicit live-gateway request commands
- agents turn — managed headless turn submission and inspection
- agents mail — managed-agent mailbox follow-up
- agents mailbox — late filesystem mailbox registration for local managed agents
Subcommands¶
| Subcommand | Description |
|---|---|
launch |
Start a managed agent. Provisions a runtime home, builds the brain, and launches a live session. Accepts either --agents <selector> for a direct recipe selector or --launch-profile <name> to resolve a stored explicit launch profile (mutually exclusive). |
join |
Adopt an existing tmux-backed TUI or native headless logical session into Houmao managed-agent control. |
list, state |
Inspect locally discovered or pair-backed managed agents. |
prompt |
Send a prompt to a running agent session. |
stop, interrupt, relaunch |
Control the current managed-agent runtime posture. |
mail |
Resolve live mailbox bindings, inspect status, check, send, reply, or mark messages read. |
mailbox |
Register, unregister, or inspect late filesystem mailbox bindings on an existing local managed agent. |
cleanup session|logs|mailbox |
Clean one stopped managed-session envelope, session-local log artifacts, or session-local mailbox secret material without calling houmao-server. |
gateway attach |
Attach a gateway to an agent session. |
gateway status |
Show gateway status for a session. |
gateway prompt |
Send a prompt through the gateway. |
gateway interrupt |
Interrupt the current gateway operation. |
gateway send-keys |
Send raw control input through the live gateway. |
gateway tui state|history|watch|note-prompt |
Inspect or annotate the raw gateway-owned TUI tracking surface. |
gateway mail-notifier status|enable|disable |
Inspect or control live unread-mail reminder behavior on the gateway. |
Gateway targeting rules:
- Outside tmux, gateway commands require an explicit
--agent-idor--agent-name. - Inside a managed tmux session, omitting the selector resolves the current session from
HOUMAO_MANIFEST_PATHfirst and falls back toHOUMAO_AGENT_IDplus shared registry when needed. --current-sessionforces same-session resolution and cannot be combined with--agent-id,--agent-name, or--port.--portis only supported with an explicit selector, because current-session mode uses the manifest-declared pair authority instead of retargeting another server.
Gateway TUI notes:
gateway tui stateandgateway tui watchread the exact raw gateway-owned tracked state rather than the transport-neutralagents statepayload.gateway tui historyreturns bounded in-memory snapshot history from the live gateway tracker, not coarse managed-agent/history.gateway tui note-promptrecords explicit prompt provenance on the live gateway tracker without enqueueing a gateway prompt request.
Mail targeting rules:
- Outside tmux,
agents mailrequires an explicit--agent-idor--agent-name. - Inside a managed tmux session, omitting those selectors resolves the current session from
HOUMAO_MANIFEST_PATHfirst andHOUMAO_AGENT_IDplus shared-registry metadata second. --portonagents mailis only supported with an explicit selector.
The preferred local serverless mailbox workflow is:
houmao-mgr mailbox init --mailbox-root <path>houmao-mgr agents launch ...orhoumao-mgr agents join ...houmao-mgr agents mailbox register --agent-name <name> --mailbox-root <path>houmao-mgr agents mail ...
For supported tmux-backed managed sessions, including sessions adopted through houmao-mgr agents join, agents mailbox register and agents mailbox unregister update the durable manifest-backed mailbox binding without requiring relaunch solely for mailbox attachment. That remains true even when a joined session is controllable but non-relaunchable because no launch options were recorded, as long as Houmao can still update the session manifest and validate the resulting mailbox binding. When a direct mailbox workflow needs the current binding set explicitly, resolve it through pixi run houmao-mgr agents mail resolve-live. Inside the owning tmux session, selectors may be omitted. Outside tmux, or when targeting a different agent, use an explicit --agent-id or --agent-name. The resolver returns structured mailbox fields plus optional live gateway.base_url data for attached /v1/mail/* work.
If agents mailbox register would replace existing shared mailbox state, the command prompts before destructive replacement on interactive terminals and accepts --yes for non-interactive overwrite confirmation.
Cleanup targeting rules:
agents cleanup session|logs|mailboxaccept exactly one of--agent-id,--agent-name,--manifest-path, or--session-root.- Inside the target tmux session, omitting those options resolves the current session from
HOUMAO_MANIFEST_PATHfirst andHOUMAO_AGENT_IDplus fresh shared-registry metadata second. - Every cleanup command supports
--dry-runand reportsplanned_actions,applied_actions,blocked_actions, andpreserved_actionsin one normalized payload. Plain and fancy modes print populated action buckets line by line, while--print-jsonpreserves the machine-readable JSON shape.
agents launch source-selector and launch-profile rules:
agents launchaccepts exactly one of--agents <selector>and--launch-profile <name>. The two are mutually exclusive and one is required.--agentsis the direct recipe selector form. The effective provider defaults toclaude_codewhen--provideris omitted.--launch-profileresolves the named launch profile from the active project overlay and rejects easyproject easy profile ...selections; only explicit recipe-backed launch profiles (profile_lane=launch_profile) are accepted.- A launch-profile-backed launch derives the source recipe from the stored profile, then composes effective inputs in the precedence order: source recipe defaults → launch-profile defaults → direct CLI overrides.
- Direct overrides such as
--agent-name,--agent-id,--auth, and--workdirapply to one launch and never rewrite the stored launch profile. --force [keep-stale|clean]is a launch-owned takeover flag for replacing an existing live local owner of the resolved managed identity. Omitting--forcekeeps the current owner in place and fails the new launch on that conflict.- Bare
--forcemeanskeep-stale. Houmao stops the predecessor first, reuses the predecessor managed home in place, and leaves untouched stale artifacts alone. If leftover stale files break the replacement launch, Houmao does not scrub or repair them automatically. --force cleanis the explicit destructive mode. Houmao stops the predecessor, removes predecessor-owned replaceable launch artifacts such as the managed home, session root, job dir, and safe private mailbox paths, and then rebuilds from a clean managed-home state.- Force takeover remains identity-scoped rather than tmux-name-scoped and never rewrites the stored launch profile.
--managed-headerand--no-managed-headerare mutually exclusive one-shot overrides for the Houmao-managed prompt header. For what the header contains and the full prompt composition order, see Managed Launch Prompt Header.- When neither managed-header flag is supplied,
agents launchinherits managed-header policy from the selected launch profile when one is present; otherwise it falls back to the default enabled behavior. - Direct managed-header override wins over stored launch-profile policy for the current launch only and does not rewrite the stored profile.
agents launchalso accepts repeatable--managed-header-section SECTION=enabled|disabledone-shot section overrides. These win over stored profile section policy for the named section and do not rewrite the stored profile. The supported section names areidentity,memo-cue,houmao-runtime-guidance,automation-notice,task-reminder, andmail-ack.--append-system-prompt-textand--append-system-prompt-fileare mutually exclusive one-shot prompt appendix inputs. They append after launch-profile overlay resolution for the current launch only and never rewrite the source role prompt or the stored launch profile.agents launchaccepts--workdirto override the launched agent runtime cwd; when omitted, the runtime cwd defaults to the invocation cwd. When the launch source resolves from a Houmao project, that source project stays authoritative for overlay-local defaults even if the runtime cwd points somewhere else.agents launchaccepts--modeland--reasoning-levelas launch-owned model-selection flags.--modelis a tool-agnostic name that resolves through the provider mapping.--reasoning-levelis a tool/model-specific preset index rather than a portable1..10knob. Both apply to the current launch only and do not rewrite the stored launch profile.--providerdefaults from the resolved launch-profile recipe when one tool family is determined by that source. Supplying--providertogether with--launch-profileis accepted only when it matches the resolved source; otherwise the command fails clearly before build.- Launch-profile-stored fields that flow through the manifest into runtime launch resolution include managed-agent identity defaults, working directory, auth override selected by display name, prompt-mode override, durable env records, declarative mailbox config, headless and gateway posture, the managed-header whole-header policy, managed-header section policy, the prompt overlay, and any stored memo seed. Stored memo seeds apply before prompt composition and provider startup; direct
agents launch --agents ...launches do not apply one because no reusable launch profile was selected. The stored auth relationship is catalog-backed, so later auth rename stays valid. Prompt composition order is source role prompt → prompt overlay resolution → launch appendix append when present → structured render into<houmao_system_prompt>→ backend-specific role injection. - For the conceptual model that ties
agents launch --launch-profileto easyproject easy profileand to the broader launch-profile object family, see Launch Profiles.
agents prompt request-scoped headless execution overrides:
agents promptaccepts optional--model TEXTand--reasoning-level INTEGERrequest-scoped headless execution overrides.--modelis a tool-agnostic name that resolves through the provider mapping used by launch-owned model selection.--reasoning-levelis a tool/model-specific preset index rather than a portable1..10knob.- The override flags apply to exactly the submitted prompt. They do not mutate launch profiles, recipes, specialists, manifests, stored easy profiles, or any other live session defaults, and they do not persist beyond the submission.
- When the resolved target is a TUI-backed session, the command rejects
--modeland--reasoning-levelclearly rather than silently dropping them. Only request-scoped headless prompt routes accept the overrides. - Partial overrides are supported: supplying
--reasoning-levelwithout--modelmerges with the launch-resolved model defaults through the shared headless resolution helper rather than resetting fields that were not explicitly overridden. Supplying neither leaves the launch-resolved defaults in effect. - Higher unused reasoning numbers saturate to the highest maintained Houmao preset for the resolved tool/model ladder.
0means explicit off only for ladders that support it, such as non-Gemini-3 Gemini budget presets and any Codex model ladder that explicitly exposes off. - Current maintained ladders are: Claude
1=low,2=medium,3=high, optional4=max; current Codex coding models such asgpt-5.4,gpt-5.3-codex, andgpt-5.2-codexuse1=low,2=medium,3=high,4=xhigh; Gemini uses documented Houmao preset tables per model family and may map one level to multiple native Gemini thinking settings together. Codexminimalis projected only when the resolved Codex model ladder explicitly includes it. - If you need finer native control than those Houmao presets provide, omit
--reasoning-leveland manage native tool config or environment directly. - The same override contract applies to
agents turn submitandagents gateway prompt; for the dedicated per-command option tables, see agents turn and agents gateway. The managed-agent HTTP payload shape is described in Managed Agent API.
mailbox — Local filesystem mailbox administration¶
Local operator commands for filesystem mailbox roots and address lifecycle. This surface does not require houmao-server.
Subcommands¶
| Subcommand | Description |
|---|---|
init |
Bootstrap or validate one filesystem mailbox root. |
status |
Inspect mailbox-root health plus active, inactive, and stashed registration counts. |
register |
Create or reuse one filesystem mailbox registration for a full mailbox address. |
unregister |
Deactivate or purge one filesystem mailbox registration. |
accounts list|get |
Inspect mailbox registrations as operator-facing mailbox accounts. |
messages list|get |
Inspect structural message projections for one registered mailbox address. |
repair |
Rebuild one filesystem mailbox root's shared index state locally. |
cleanup |
Remove inactive or stashed mailbox registrations while preserving active registrations and canonical messages/ history. |
clear-messages |
Clear delivered message content and derived message state while preserving mailbox registrations. |
export |
Export selected mailbox accounts and indexed messages into a portable archive directory. |
mailbox register keeps the existing safe, force, and stash mode vocabulary. When a requested registration would replace existing durable mailbox state or an occupying mailbox entry artifact, the command prompts before destructive replacement on interactive terminals and accepts --yes for non-interactive overwrite confirmation.
mailbox messages list|get is structural inspection over canonical message metadata plus address-scoped projection metadata. Participant-local mutable state such as read, starred, archived, and deleted belongs on actor-scoped houmao-mgr agents mail ... workflows rather than this operator/admin surface.
mailbox clear-messages is the destructive whole-root message reset. It clears delivered filesystem mail, message projections, mailbox-local message/thread state, and mailbox-owned managed-copy attachments while preserving mailbox registrations and account directories. Use --dry-run to preview and --yes for non-interactive confirmation; external path_ref attachment targets are not deleted.
mailbox export is the maintained archive path for filesystem mailbox roots. It requires --output-dir <dir> plus an explicit account scope: either --all-accounts or one or more --address <full-address> values. The output directory must not already exist. The default --symlink-mode materialize writes regular files and directories, including materialized projection links and symlink-backed private account directories, and verifies the archive contains no symlinks. Use --symlink-mode preserve only when you explicitly want archive-internal relative projection symlinks and the target filesystem supports symlink creation. The archive root contains manifest.json, canonical messages under messages/, selected account metadata and mailbox-local state under accounts/, and copied mailbox-owned managed-copy attachments under attachments/managed/; external path_ref targets are recorded in the manifest instead of copied. Prefer this command over raw recursive mailbox-root copying when preparing an archive.
brains — Local brain-construction commands¶
Local brain-construction commands; these do not call houmao-server.
brains build¶
Build one local brain home from BuildRequest-aligned inputs.
Options:
| Option | Description |
|---|---|
--agent-def-dir PATH |
Path to the agent definition directory. |
--tool TEXT |
Tool identifier for the brain (e.g. codex, claude, gemini). |
--skill TEXT |
Skill name to include. May be specified multiple times. |
--setup TEXT |
Setup bundle to materialize. |
--auth TEXT |
Auth bundle to project. |
--preset TEXT |
Preset path or bare preset name resolved from the agent root. |
--runtime-root PATH |
Root directory for runtime homes. |
--home-id TEXT |
Explicit home identifier for the runtime home directory. |
--reuse-home |
Reuse an existing runtime home if one matches, instead of creating a new one. |
--launch-overrides TEXT |
Secret-free launch overrides to pass through to the tool adapter. |
--agent-name TEXT |
Human-readable agent name. |
--agent-id TEXT |
Explicit agent identifier. |
brains build resolves the effective agent-definition root with this precedence:
--agent-def-dirHOUMAO_AGENT_DEF_DIRHOUMAO_PROJECT_OVERLAY_DIR- ambient project-overlay discovery under
HOUMAO_PROJECT_OVERLAY_DISCOVERY_MODE - default
<pwd>/.houmao/agents
HOUMAO_PROJECT_OVERLAY_DIR must be an absolute path and selects the overlay directory directly for CI or controlled automation. HOUMAO_PROJECT_OVERLAY_DISCOVERY_MODE affects ambient discovery only when no explicit overlay root is set: ancestor is the default nearest-ancestor lookup bounded by the Git repository, while cwd_only restricts lookup to <cwd>/.houmao/houmao-config.toml. When env selection or discovery wins, houmao-config.toml inside that overlay is the discovery anchor and agents/ under the same overlay is the compatibility projection that current file-tree consumers read from the catalog-backed overlay.
When --preset resolves to a recipe that carries launch.env_records, brains build projects those records as durable non-credential launch env alongside the selected auth bundle. Those env records come from specialist launch config, not from one-off instance launch input.
credentials — Dedicated credential management¶
houmao-mgr credentials is the first-class top-level credential-management surface for Claude, Codex, and Gemini. It is the canonical entry point for managing credential contents and names, either through the active Houmao project overlay or through a plain agent-definition directory selected with --agent-def-dir <path>.
For a project-scoped view that always targets the active overlay without an explicit selector, use the project credentials wrapper — see project credentials <tool> ... below. Both surfaces share semantics, and the project-scoped wrapper is the preferred entry point when an active overlay is present.
Tool subcommands¶
| Subcommand | Description |
|---|---|
claude |
Manage Claude credentials through either the active project overlay or a selected plain agent-definition directory. |
codex |
Manage Codex credentials through either the active project overlay or a selected plain agent-definition directory. |
gemini |
Manage Gemini credentials through either the active project overlay or a selected plain agent-definition directory. |
Each tool subcommand exposes the same credential-management verbs:
| Verb | Description |
|---|---|
list |
List credential names for one supported tool. |
get |
Inspect one credential safely as structured data. --name is required. |
add |
Create one credential. --name is required plus the tool-specific credential input flags. |
set |
Update one existing credential. --name is required; only supplied input flags are updated, other stored fields are preserved. |
login |
Run the vendor CLI login flow in an isolated temporary provider home, then import the resulting auth file into Houmao storage. --name is required. |
remove |
Remove one credential by --name. |
rename |
Rename one credential from --name to --to. For project-overlay credentials the underlying auth-profile identity is preserved; stored launch-profile auth relationships remain valid after rename. |
Target selector¶
Every credentials <tool> ... verb accepts one selector:
| Option | Description |
|---|---|
--project |
Resolve credentials through the active Houmao project overlay. Default when no selector is supplied and an overlay is discoverable. |
--agent-def-dir DIRECTORY |
Manage credentials in the selected plain agent-definition directory instead of a project overlay. This is the escape hatch for tool homes that do not use a Houmao project overlay. |
--project and --agent-def-dir are mutually exclusive. When --agent-def-dir is supplied, the command operates on the filesystem-backed tools/<tool>/auth/<name>/ layout inside that agent-definition directory. When --project is supplied (or defaulted), the command operates on the catalog-backed project overlay with display-name semantics and opaque bundle refs under .houmao/content/auth/<tool>/<bundle-ref>/.
Credential login helper¶
Use login when you need to obtain fresh provider auth files for a different Claude, Codex, or Gemini account and import them into Houmao:
houmao-mgr credentials [--project|--agent-def-dir <path>] <tool> login --name <credential-name>
houmao-mgr project credentials <tool> login --name <credential-name>
By default, login creates a new credential and fails if that credential name already exists. Pass --update only when you intentionally want to replace the existing stored auth files through the same patch-preserving update path as set.
Common options:
| Option | Description |
|---|---|
--name TEXT |
Credential display name or direct-dir credential directory name. Required. |
--update |
Update an existing credential instead of creating a new one. |
--keep-temp-home |
Preserve the temporary provider home after a successful import and report its path. |
--inherit-auth-env |
Do not scrub common provider auth-related environment variables for the login process. The default is to scrub them so the provider CLI does not silently reuse the current API-key or token lane. |
Provider mapping:
| Tool | Isolated home | Default login command | Imported artifact |
|---|---|---|---|
| Claude | CLAUDE_CONFIG_DIR=<temp-home> |
claude auth login |
<temp-home>/.credentials.json plus <temp-home>/.claude.json when present |
| Codex | CODEX_HOME=<temp-home> |
codex login --device-auth |
<temp-home>/auth.json |
| Gemini | GEMINI_CLI_HOME=<temp-home> |
interactive gemini OAuth flow |
<temp-home>/.gemini/oauth_creds.json |
Provider-specific options:
| Tool | Options |
|---|---|
| Claude | --claudeai, --console, --email TEXT, and --sso are passed to claude auth login. |
| Codex | --browser uses ordinary codex login browser mode instead of the default device-auth mode. |
| Gemini | --no-browser sets NO_BROWSER=true for the Gemini OAuth flow. Gemini may require an interactive session; finish the browser or manual-code login and exit Gemini so Houmao can import oauth_creds.json. |
The helper invokes the installed provider CLI with inherited terminal I/O, so browser, device-code, console, and paste-back prompts remain owned by the provider tool. Houmao validates the expected auth artifact after the provider command exits, imports it through the existing credential storage contract, and deletes the temporary provider home after a successful import by default. If provider login fails, the expected artifact is missing, or Houmao import fails, the command preserves the temporary provider home and reports its path for diagnosis or manual recovery.
Per-tool credential input flags¶
The per-tool input flags on credentials <tool> add and credentials <tool> set mirror the Click decorators in src/houmao/srv_ctrl/commands/credentials.py and stay aligned with the corresponding project credentials surface.
Claude (credentials claude add|set):
| Option | Description |
|---|---|
--api-key TEXT |
Value for ANTHROPIC_API_KEY. |
--auth-token TEXT |
Value for ANTHROPIC_AUTH_TOKEN. |
--oauth-token TEXT |
Value for CLAUDE_CODE_OAUTH_TOKEN. |
--base-url TEXT |
Value for ANTHROPIC_BASE_URL. |
--model TEXT |
Value for ANTHROPIC_MODEL. |
--small-fast-model TEXT |
Value for ANTHROPIC_SMALL_FAST_MODEL. |
--subagent-model TEXT |
Value for CLAUDE_CODE_SUBAGENT_MODEL. |
--default-opus-model TEXT, --default-sonnet-model TEXT, --default-haiku-model TEXT |
Vendor-native default-model env overrides for Claude. |
--config-dir DIRECTORY |
Optional Claude config dir to import vendor login state from (.credentials.json plus companion .claude.json when present). |
--state-template-file FILE |
Optional Claude bootstrap state template JSON stored alongside the credential bundle. This is bootstrap state, not a credential-providing method. |
Cross-reference: see Claude Vendor Login Files for the file-handling rules and the local smoke-validation workflow.
Codex (credentials codex add|set):
| Option | Description |
|---|---|
--api-key TEXT |
Value for OPENAI_API_KEY. |
--base-url TEXT |
Value for OPENAI_BASE_URL. |
--org-id TEXT |
Value for OPENAI_ORG_ID. |
--auth-json FILE |
Optional Codex auth.json login-state file stored in the credential bundle. |
Gemini (credentials gemini add|set):
| Option | Description |
|---|---|
--api-key TEXT |
Value for GEMINI_API_KEY. |
--google-api-key TEXT |
Value for GOOGLE_API_KEY. |
--base-url TEXT |
Value for GOOGLE_GEMINI_BASE_URL. |
--use-vertex-ai |
Store GOOGLE_GENAI_USE_VERTEXAI=true in the credential bundle env file. |
--oauth-creds FILE |
Optional Gemini CLI oauth_creds.json file stored in the credential bundle. |
Notes:
credentialsis the supported credential-management surface. The retiredproject agents tools <tool> auth ...CRUD subtree is no longer maintained; usecredentials ...orproject credentials ...instead.addandsetare patch-preserving: setting one input flag does not implicitly delete other stored fields on the same credential. Refreshing--config-dirreplaces the imported Claude vendor login files as one maintained set.loginis the supported way to let Houmao own the temp-home lifecycle around provider login and import. Do not manually copy fresh vendor login files into.houmao/content/auth/,.houmao/agents/tools/<tool>/auth/, ortools/<tool>/auth/<name>/for this ordinary workflow.- Auth-owned model env on Claude is separate from launch-owned model selection. Use
credentials claude add|set --model <value>only when you need to pinANTHROPIC_MODELin the credential bundle; use the launch-owned--modelonagents launch/project easy specialist create|set/project easy profile create|set/project agents launch-profiles add|setwhen you are selecting a Houmao launch-time model through the provider mapping. - For the agent-driven workflow that wraps this surface, see the packaged
houmao-credential-mgrsystem skill. For the easy-lane credential notes exposed throughproject easy specialist createandproject credentials, see theproject credentials claude add|setnotes under theprojectcommand group below.
system-skills — Packaged Houmao-owned skill installation for resolved tool homes¶
Install or inspect the packaged current Houmao-owned houmao-* skill set for resolved Claude, Codex, or Gemini homes.
Subcommands¶
| Subcommand | Description |
|---|---|
list |
Show the packaged skill inventory, named sets, and fixed auto-install set lists. |
status |
Show which current Houmao-owned system skills are installed in one resolved tool home by scanning the live filesystem. |
install |
Install the CLI-default set list, explicit named sets, explicit skills, or any combination of those into one resolved tool home. |
Operational notes:
system-skills installrequires--tooland accepts optional--homesystem-skills statusrequires--tooland accepts optional--home- when
--homeis omitted, the effective home resolves with precedence--homeoverride, tool-native home env var (CLAUDE_CONFIG_DIR,CODEX_HOME,GEMINI_CLI_HOME), then the project-scoped default home - the project-scoped defaults are
<cwd>/.claudefor Claude,<cwd>/.codexfor Codex, and<cwd>for Gemini - omitting both
--setand--skillselects the packaged CLI-default set list - optional
--symlinkinstalls the selected packaged skills as absolute-target directory symlinks instead of copied trees - repeated sets expand in order, explicit skills append after sets, and the final list is deduplicated by first occurrence
- the installer preserves flat visible Houmao-owned skill paths: Claude uses
skills/houmao-..., Codex usesskills/houmao-..., and Gemini uses.gemini/skills/houmao-... - install and status are stateless with respect to ownership bookkeeping; they use live current paths plus an explicit legacy migration map
- managed brain build and
agents joinuse the same packaged catalog and installer internally
For the detailed catalog, projection, and ownership contract, see system-skills.
Startup note:
houmao-mgrbuilds one root Click command tree at process startup, so a stale import in any registered command group can blockhoumao-mgr --version, root help, and unrelated subcommands before dispatch
project — Repo-local Houmao project overlays¶
Local operator workflow for bootstrapping and inspecting one repo-local overlay. By default the overlay root is <pwd>/.houmao. Set HOUMAO_PROJECT_OVERLAY_DIR=/abs/path to target a different overlay directory directly.
Command shape:
houmao-mgr project
├── init | status
├── agents
│ ├── roles ...
│ ├── recipes ... # canonical low-level source recipes
│ ├── presets ... # compatibility alias for `recipes`
│ ├── launch-profiles ... # explicit recipe-backed birth-time launch profiles
│ └── tools <tool> ...
├── easy
│ ├── specialist ...
│ ├── profile ... # specialist-backed easy birth-time profiles
│ └── instance ...
└── mailbox
├── init | status | register | unregister | repair | cleanup
├── accounts list|get
└── messages list|get
Subcommands¶
| Subcommand | Description |
|---|---|
init |
Create or validate the selected overlay root, default <pwd>/.houmao, write houmao-config.toml, write .gitignore, create catalog.sqlite, and create managed content/ roots. |
status |
Report whether a project overlay was discovered under the selected overlay root, which catalog was found, and which agent-definition root is effective. |
agents |
Low-level filesystem-oriented management for the .houmao/agents/ compatibility projection. |
easy |
Higher-level specialist and instance workflow persisted in .houmao/catalog.sqlite with file-backed payloads under .houmao/content/. |
mailbox |
Project-scoped wrapper over the generic mailbox-root CLI targeting mailbox/ under the active overlay root. |
Project overlay notes:
project initbootstraps<pwd>/.houmaoby default.HOUMAO_PROJECT_OVERLAY_DIR=/abs/pathselects/abs/pathas the overlay root directly and must be absolute.HOUMAO_PROJECT_OVERLAY_DISCOVERY_MODE=ancestoris the default ambient lookup mode;cwd_onlyrestricts ambient lookup to<pwd>/.houmao/houmao-config.toml.- The selected overlay root gets a local
.gitignorecontaining*, so the whole overlay stays local-only without editing the repo root.gitignore. project statusresolves the active overlay root fromHOUMAO_PROJECT_OVERLAY_DIRfirst, then ambient discovery underHOUMAO_PROJECT_OVERLAY_DISCOVERY_MODE, and reports the effective discovery mode in its JSON payload.project initcreatescatalog.sqliteplus managedcontent/prompts/,content/auth/,content/skills/, andcontent/setups/under the selected overlay root.project initdoes not createagents/,mailbox/, oreasy/under the selected overlay root by default.
project agents¶
project agents is the low-level maintenance surface for the compatibility projection tree under agents/ in the active overlay root.
| Subcommand | Description |
|---|---|
roles list|get|init|set|remove |
Inspect, create, update, or delete prompt-only role roots under agents/roles/. Use roles get --include-prompt when you explicitly need prompt text in CLI output. |
recipes list|get|add|set|remove |
Canonical low-level recipe administration. Manages named recipe files projected under agents/presets/<name>.yaml, including role selection, tool lane, skills, prompt mode, and selected auth bundle reference. |
presets list|get|add|set|remove |
Compatibility alias for recipes. Operates on the same files under agents/presets/<name>.yaml and accepts the same flags. |
launch-profiles list|get|add|set|remove |
Manage explicit recipe-backed reusable birth-time launch profiles projected under agents/launch-profiles/<name>.yaml. See the dedicated section below for the field set. |
tools <tool> get |
Inspect one tool subtree, including adapter, setup, and auth bundle summaries. |
tools <tool> setups list|get|add|remove |
Inspect or clone setup bundles under agents/tools/<tool>/setups/. |
Low-level boundary notes:
roles ...owns the canonical low-level role prompt.recipes ...(canonical) andpresets ...(compatibility alias) own named recipe structure, including role selection, tool lane, skills, prompt mode, and selected auth bundle reference. Both surfaces administer the same.houmao/agents/presets/<name>.yamlfiles.launch-profiles ...owns reusable recipe-backed birth-time launch configuration, including managed-agent identity defaults, working directory, auth override by display name, prompt-mode override, durable env records, declarative mailbox config, launch posture, an optional prompt overlay, and an optional memo seed. The stored auth relationship resolves through auth-profile identity, so later auth rename does not break existing launch profiles. For the shared semantic model that ties these to easy profiles, see Launch Profiles.- Managed launches prepend a short Houmao-owned prompt header by default.
houmao-mgris the canonical direct Houmao interface named by that header, and the stored launch-profile policy plus launch-time flags determine whether the header is enabled for a given launch. See Managed Launch Prompt Header for what the header contains and the prompt composition order. - Credential CRUD is no longer part of
project agents tools <tool> .... Use the dedicatedcredentialsandproject credentialscommand families for add, set, rename, remove, get, and list on Claude, Codex, and Gemini credentials.project agents tools <tool> getandtools <tool> setups ...remain focused on tool subtree inspection and setup bundle maintenance.
project agents recipes notes:
recipes addrequires--name,--role,--tool, accepts repeatable--skill, optional--auth, optional--setup(defaults todefault), and optional--prompt-mode(unattendedoras_is; defaults tounattendedwhen omitted).recipes setpatches without dropping advanced blocks. It supports--role,--tool,--setup,--auth,--clear-auth, repeatable--add-skilland--remove-skill,--clear-skills,--prompt-mode, and--clear-prompt-mode.mailboxandextrablocks already present in a recipe are preserved.- The system rejects creation or mutation that would make two recipes share the same
(role, tool, setup)tuple. recipes removedeletes the named recipe file but does not delete any launch profile that references it; remove referencing launch profiles separately when needed.
project agents launch-profiles notes:
launch-profiles addrequires--nameand--recipe. It accepts:--agent-name,--agent-id,--workdir,--auth,--prompt-mode {unattended|as_is}, repeatable--env-set NAME=value, mailbox flags (--mail-transport {filesystem|stalwart},--mail-principal-id,--mail-address,--mail-root,--mail-base-url,--mail-jmap-url,--mail-management-url), launch posture flags (--headless,--no-gateway,--gateway-port), prompt-overlay flags (--prompt-overlay-mode {append|replace},--prompt-overlay-text,--prompt-overlay-file), and memo-seed flags (--memo-seed-text,--memo-seed-file,--memo-seed-dir,--memo-seed-policy {initialize|replace|fail-if-nonempty}).launch-profiles addrejects an existing profile name by default. Passing--yesconfirms same-lane replacement of an existing explicit launch profile; replacement uses create semantics, so omitted optional fields are cleared instead of preserved.--yesdoes not allow replacing an easy profile with an explicit launch profile.launch-profiles addalso accepts--managed-headeror--no-managed-headerto store explicit managed-header whole-header policy, plus repeatable--managed-header-section SECTION=enabled|disabledto store section policy. Omitting whole-header flags storesinherit; omitting section flags stores no section entries. For the conceptual model behind these flags, see Managed Launch Prompt Header.launch-profiles setpatches without dropping unspecified advanced blocks and exposes matching--clear-*flags for nullable fields (--clear-agent-name,--clear-agent-id,--clear-workdir,--clear-auth,--clear-prompt-mode,--clear-env,--clear-mailbox,--clear-headless,--clear-managed-header,--clear-managed-header-section,--clear-managed-header-sections,--clear-prompt-overlay,--clear-memo-seed).--memo-seed-policyonlaunch-profiles setupdates the stored policy when a memo seed already exists, or pairs with one new--memo-seed-text,--memo-seed-file, or--memo-seed-dirsource.--clear-memo-seedcannot be combined with a new memo seed source or--memo-seed-policy.- Memo seed policies apply only to the managed-memory components represented by the seed source.
--memo-seed-textand--memo-seed-filetouch onlyhoumao-memo.md;--memo-seed-dirtoucheshoumao-memo.mdonly when that file is present and touches pages only whenpages/is present.--memo-seed-text '' --memo-seed-policy replacestores an intentional empty memo seed without clearing pages.--clear-memo-seedremoves stored seed configuration instead of writing an empty memo. launch-profiles setalso accepts--managed-headeror--no-managed-headerand repeatable--managed-header-section SECTION=enabled|disabled. Whole-header flags are mutually exclusive,--clear-managed-headerreturns the stored whole-header field toinherit,--clear-managed-header-section SECTIONremoves one stored section entry, and--clear-managed-header-sectionsremoves all stored section entries.launch-profiles listaccepts optional--recipeand--toolfilters when those identities are derivable from the referenced recipe.launch-profiles removedeletes one launch-profile resource without deleting the referenced recipe.- Launch profiles authored here are recipe-backed and explicit. They are stored as the same kind of catalog object that backs easy
project easy profile ..., but the explicit lane keeps the lower-level launch contract visible by intent.
project credentials claude add|set notes:
- Claude supports maintained auth inputs
--api-key,--auth-token,--oauth-token, optional--config-dir, optional--base-url, and optional model-selection env values. --config-dirimports Claude vendor login state from a maintained Claude config root by copying.credentials.jsonand companion.claude.jsonwhen present.--state-template-fileremains optional Claude bootstrap state only and is not a credential-providing method.- See Claude Vendor Login Files for the file-handling rules and the local smoke-validation workflow.
project easy¶
project easy is the higher-level project authoring and runtime-instance path.
| Subcommand | Description |
|---|---|
specialist create |
Persist one specialist in catalog.sqlite, snapshot prompt/auth/skill payloads into content/, and materialize the needed agents/ compatibility projection under the active overlay root. |
specialist set |
Patch one existing specialist without recreating it. Preserves unspecified prompt, skill, setup, credential, launch-model, prompt-mode, and env fields, then rematerializes the compatibility projection. |
specialist list|get|remove |
Inspect or remove persisted specialist definitions without forcing manual tree inspection; get reports stored launch config such as launch.prompt_mode and launch.env_records. |
profile create |
Persist one specialist-backed easy profile that captures reusable birth-time launch defaults over exactly one specialist. Stored in the shared launch-profile catalog family with profile_lane=easy_profile. |
profile list|get|set|remove |
Inspect, patch, or remove persisted easy profiles. get reports the source specialist plus the stored easy-profile launch defaults. set patches stored defaults without dropping unspecified fields. remove deletes the easy profile without removing the specialist it referenced. |
instance launch |
Launch one managed agent from either a compiled specialist (--specialist) or a stored easy profile (--profile). The two selectors are mutually exclusive and exactly one is required. |
instance stop |
Stop one managed agent through the project-aware easy instance surface. |
instance list|get |
View existing managed-agent runtime state as project-local specialist instances. list and get also report the originating easy-profile identity when runtime-backed state makes it resolvable. |
project easy specialist create notes:
--nameand--toolare required.--credentialis optional; when omitted, Houmao uses<specialist-name>-credsas the auth display name.--system-promptand--system-prompt-fileare both optional; provide at most one.--no-unattendedopts out of the easy unattended default and persistslaunch.prompt_mode: as_isfor that specialist.- repeatable
--env-set NAME=valuestores durable specialist-owned launch env underlaunch.env_records. --modeland--reasoning-levelare the supported launch-owned model-selection surfaces.--reasoning-levelis a tool/model-specific preset index rather than a portable1..10knob.- when the selected specialist name already exists,
specialist createprompts before replacing the specialist-owned prompt and recipe projection and accepts--yesfor non-interactive replacement. - If neither system-prompt option is supplied, the compiled role remains valid and the runtime treats it as having no startup prompt content.
- maintained easy launch paths persist
launch.prompt_mode: unattendedby default in both the catalog-backed specialist launch payload and the generated compatibility recipe projected under.houmao/agents/presets/, including Gemini's headless-only easy lane. - specialist
--env-setis separate from credential env and rejects auth-owned or Houmao-owned reserved env names. - Claude credential lanes use the same credential semantics in both
project credentials claude add|setandproject easy specialist create --tool claude, but the flag names differ: the dedicated credential surface uses unprefixed names (--api-key,--auth-token,--oauth-token,--config-dir,--base-url) while the easy-specialist surface uses prefixed names (--api-key,--claude-auth-token,--claude-oauth-token,--claude-config-dir,--base-url). Model selection on the easy surface is now unified under--modelplus optional--reasoning-level, with--claude-modelretained only as a compatibility alias for--model. - Claude auth bundle updates are patch-preserving: setting
--claude-oauth-token,--claude-config-dir, or--base-urldoes not implicitly delete other stored Claude auth inputs, and refreshing--claude-config-dirreplaces the imported vendor login files as one maintained set.--claude-modelno longer writes auth-owned model env; it resolves into launch-owned model selection. --claude-state-template-fileremains optional Claude bootstrap state and is not itself a credential-providing method on the easy-specialist surface.- The maintained vendor-login lane is still directory-based. Pass
--config-diror--claude-config-dir, not separate.credentials.jsonor.claude.jsonfile flags. - Detailed vendor-native model tuning belongs in the relevant specialist or credential skill documentation rather than the core CLI reference.
- Gemini credential lanes use the same contract in both
project credentials gemini add|setandproject easy specialist create --tool gemini:--api-key, optional--base-url, and optional--oauth-credsor--gemini-oauth-creds. - Gemini auth bundle updates are patch-preserving: setting
--base-urlor--oauth-credsdoes not implicitly delete other Gemini auth inputs that were already stored. - The project-local catalog is the source of truth;
agents/under the active overlay root is a compatibility projection that is materialized as needed.
project easy specialist set notes:
--nameis required and must identify an existing specialist. At least one update or clear flag is required.- Patchable fields include prompt (
--system-prompt,--system-prompt-file,--clear-system-prompt), skills (--with-skill,--add-skill,--remove-skill,--clear-skills), setup (--setup), credential (--credential), prompt mode (--prompt-mode,--clear-prompt-mode), launch-owned model (--model,--clear-model,--reasoning-level,--clear-reasoning-level), and persistent env (--env-set,--clear-env). --env-setreplaces the stored specialist env mapping with the repeatedNAME=valuerecords supplied on that command. Use--clear-envto remove the mapping.--with-skill <dir>imports a skill directory and adds it to the specialist.--add-skill <name>adds an already projected project skill by name.--remove-skill <name>removes that skill from the specialist definition; shared projected skill content is not deleted just because one specialist stops referencing it.--setup <name>switches to another setup bundle for the specialist's current tool lane. When the preset name changes, the old specialist-owned projected preset file is removed after the catalog projection is materialized.--credential <name>selects an existing credential display name for the specialist's current tool lane. It does not create or mutate credential bundles.specialist setdoes not rename specialists and does not change the tool lane; create a new specialist when either identity should change.- Updates affect future launches and profile resolutions. Already-running easy instances are not mutated in place.
project easy profile create notes:
--nameand--specialistare required. The named profile targets exactly one existing specialist.- Optional birth-time defaults:
--agent-name,--agent-id,--workdir,--auth,--prompt-mode {unattended|as_is},--model,--reasoning-level, repeatable--env-set NAME=value, mailbox flags (--mail-transport {filesystem|stalwart},--mail-principal-id,--mail-address,--mail-root,--mail-base-url,--mail-jmap-url,--mail-management-url), launch posture flags (--headless,--no-gateway,--gateway-port), managed-header flags (--managed-header,--no-managed-header, repeatable--managed-header-section SECTION=enabled|disabled), prompt-overlay flags (--prompt-overlay-mode {append|replace},--prompt-overlay-text,--prompt-overlay-file), and memo-seed flags (--memo-seed-text,--memo-seed-file,--memo-seed-dir,--memo-seed-policy {initialize|replace|fail-if-nonempty}). project easy profile createrejects an existing profile name by default. Passing--yesconfirms same-lane replacement of an existing easy profile; replacement uses create semantics, so omitted optional fields are cleared instead of preserved.--yesdoes not allow replacing an explicit launch profile with an easy profile.project easy profile set --name <profile>patches stored defaults on an existing easy profile while preserving unspecified fields. It accepts the same stored-default field families as explicitlaunch-profiles set, including clear flags such as--clear-agent-name,--clear-agent-id,--clear-workdir,--clear-auth,--clear-prompt-mode,--clear-env,--clear-mailbox,--clear-headless,--clear-managed-header,--clear-managed-header-section,--clear-managed-header-sections,--clear-prompt-overlay, and--clear-memo-seed.- Easy-profile memo seed policy semantics match explicit launch profiles: policy actions are scoped to the represented memo/pages components, and
--clear-memo-seedremoves stored seed configuration rather than seeding an empty memo. - The persisted easy profile lives in the shared catalog launch-profile family with
profile_lane=easy_profileandsource_kind=specialist. It projects into the same compatibility tree (.houmao/agents/launch-profiles/<name>.yaml) used by explicit launch profiles. --auth <name>is display-name-oriented at the CLI, but the stored easy-profile relationship resolves through auth-profile identity so laterproject credentials <tool> renamecontinues to work.- Omitting both managed-header flags on
project easy profile createstoresinherit, which falls back to the default enabled managed-header behavior later at launch time. - When no active project overlay exists for the caller,
project easy profile createensures<cwd>/.houmaoexists before persisting the profile (matching theproject easy specialist createbootstrap behavior). project easy profile removeremoves only the profile definition. It does not remove the specialist that the profile referenced.- For the conceptual model that ties easy profiles to explicit launch profiles, see Launch Profiles.
project easy instance launch notes:
- Exactly one of
--specialistor--profileis required. The two selectors are mutually exclusive. --specialistselects a compiled specialist definition to launch from directly.--nameis required when launching from--specialist.--profileselects a stored easy profile. The command derives the source specialist from that profile, applies easy-profile-stored defaults (managed-agent identity, workdir, auth override, prompt mode, durable env records, declarative mailbox config, headless/gateway posture, prompt overlay, and any stored memo seed), and uses the active project overlay as the authoritative source context. Auth is still rendered by display name even though the stored relationship is auth-profile-backed.--namemay be omitted when the selected profile stores a default managed-agent name; otherwise it remains required.- Stored easy-profile memo seeds apply their represented memo/pages components before prompt composition and provider startup. Direct
project easy instance launch --specialist ...launches do not apply one because no reusable easy profile was selected, and there is no one-shot memo-seed override flag on the launch surface. - Direct launch-time overrides such as
--auth,--workdir,--name,--mail-transport,--mail-root, and--mail-account-dirwin over easy-profile defaults but never rewrite the stored easy profile. The next launch from the same profile will see the original stored defaults again. --force [keep-stale|clean]is also available here and behaves the same as onagents launch, but only for the current easy-instance launch. Bare--forcemeanskeep-stale, which stops the predecessor and reuses the predecessor managed home while leaving untouched stale artifacts alone.--force cleanstops the predecessor and removes predecessor-owned replaceable launch artifacts before rebuilding. Shared mailbox message history and unrelated operator-owned paths are preserved.- Force mode never becomes part of specialist metadata or easy-profile storage.
--managed-headerand--no-managed-headerare mutually exclusive one-shot overrides. They win over the stored easy-profile managed-header policy for the current launch only and never rewrite the stored easy profile.- When neither managed-header flag is supplied, easy-instance launch inherits policy from the selected profile when one is present; otherwise it falls back to the default enabled behavior.
project easy instance launchalso accepts repeatable--managed-header-section SECTION=enabled|disabledone-shot section overrides. These win over stored easy-profile section policy for the named section and never rewrite the stored easy profile.--append-system-prompt-textand--append-system-prompt-fileare mutually exclusive one-shot appendix inputs. They append after any resolved easy-profile prompt overlay and never rewrite the stored specialist or easy profile.- Easy-instance inspection (
project easy instance listandproject easy instance get) reports the originating easy-profile identity in addition to the originating specialist when runtime-backed state makes both resolvable. --nameis the managed-agent instance name and also seeds the default filesystem mailbox identity when mailbox association is enabled.- unless
--no-gatewayis supplied, the easy surface now requests launch-time gateway attach by default on loopback (127.0.0.1) with a system-assigned port. - by default, that easy auto-attach uses same-session foreground gateway execution and reports
gateway_execution_modeplusgateway_tmux_window_indexwhen foreground attach succeeds. --gateway-port <port>keeps the default easy gateway attach enabled for that launch, but requests the specified loopback listener port instead of a system-assigned port.--gateway-backgroundkeeps easy auto-attach enabled for that launch, but requests detached background gateway execution instead of the default foreground auxiliary-window execution.--gateway-tui-watch-poll-interval-seconds,--gateway-tui-stability-threshold-seconds,--gateway-tui-completion-stability-seconds,--gateway-tui-unknown-to-stalled-timeout-seconds,--gateway-tui-stale-active-recovery-seconds, and--gateway-tui-final-stable-active-recovery-secondsare positive-second one-shot overrides for the gateway-owned TUI tracker. They affect the current launch-time gateway attach and are not stored in launch profiles or easy profiles.--no-gatewayis mutually exclusive with--gateway-port,--gateway-background, and any--gateway-tui-*override.--workdiroverrides only the launched agent runtime cwd; the selected project overlay, specialist source, runtime root, jobs root, and default mailbox root remain pinned to the selected project.- the command honors the stored specialist launch posture instead of injecting a separate prompt-mode policy at launch time.
- Gemini specialists remain headless-only here and fail fast unless
--headlessis supplied. - repeatable
--env-set NAME=value|NAMEapplies one-off env to the current live session, resolves inheritedNAMEbindings from the invoking shell, and does not survive relaunch. --mail-transport filesystemrequires--mail-rootand optionally accepts--mail-account-dirfor a symlink-backed private mailbox directory.--mail-account-dirmust resolve outside the shared mailbox root; safe launch fails if the address slot already exists as a real directory or as a symlink to a different target.--mail-transport emailis reserved for a future real-email path and currently fails fast as not implemented.- when the managed session starts but launch-time gateway attach fails afterward, the command still reports the live session identity and manifest path, includes
gateway_auto_attach_error, and exits with degraded-success status code2. agents launchlikewise accepts--workdir; when the launch source resolves from a Houmao project, that source project stays authoritative for overlay-local defaults even if the runtime cwd points somewhere else.agents joinnow uses--workdirinstead of--working-directory; when omitted, the adopted cwd comes from tmux window0, pane0.
project mailbox¶
project mailbox mirrors the generic mailbox-root CLI, but automatically targets mailbox/ under the active overlay root selected by HOUMAO_PROJECT_OVERLAY_DIR or ambient discovery under HOUMAO_PROJECT_OVERLAY_DISCOVERY_MODE.
| Subcommand | Description |
|---|---|
init, status, register, unregister, repair, cleanup, clear-messages, export |
Perform mailbox-root lifecycle operations against .houmao/mailbox. |
accounts list|get |
Inspect mailbox registrations under the project mailbox root. |
messages list|get |
Inspect structural message projections under the project mailbox root. |
project mailbox register mirrors the generic mailbox overwrite-confirmation contract, including interactive overwrite prompts and --yes for non-interactive replacement.
project mailbox clear-messages mirrors the generic delivered-message reset, but targets the selected overlay mailbox root automatically.
project mailbox export --output-dir <dir> (--all-accounts | --address <full-address>...) [--symlink-mode materialize|preserve] mirrors the generic export behavior, but targets mailbox/ under the selected project overlay and includes the selected overlay details in the structured result.
project mailbox messages list|get follows the same structural-only contract as houmao-mgr mailbox messages list|get; use houmao-mgr agents mail ... when the workflow needs actor-scoped unread/read follow-up state.
internals — Internal utility commands¶
Internal Houmao utility commands for agents and maintainers.
The primary subgroup is internals graph, which provides NetworkX-backed helpers for loop plan authoring, structural analysis, and low-level graph manipulation. All graph commands use NetworkX node-link JSON as their interchange format.
For the full subcommand reference, see internals.
server — Server lifecycle management¶
Manage supported pair-authority lifecycle and houmao-server sessions.
server start¶
Start houmao-server in detached or explicit foreground mode.
Options:
| Option | Description |
|---|---|
--foreground |
Run the server in the foreground instead of detaching. |
--api-base-url TEXT |
Base URL for the server API. |
--runtime-root PATH |
Root directory for runtime state. |
--watch-poll-interval-seconds FLOAT |
Polling interval for the session watcher. |
--supported-tui-process TEXT |
TUI process name the server should recognize. May be specified multiple times. |
--startup-child TEXT |
Child process to launch on server startup. |
server status¶
Show server health and a compact active-session summary.
Deprecated entrypoints: houmao-cli and houmao-cao-server are deprecated compatibility entrypoints. Use houmao-mgr and houmao-server/houmao-passive-server instead.