| name | Hone Administrator |
| description | Admin-only skill for viewing or modifying Hone source code and configuration, and for performing restarts. Available only to users listed in config.yaml admins |
| tools | ["restart_hone"] |
Hone Administrator Skill (hone_admin)
Security note: This skill is available only to administrators listed in config.yaml under admins.
If an unauthorized user tries to trigger admin actions, politely refuse.
Project Structure Overview
<PROJECT_ROOT>/ <- project root (current working directory)
โโโ config.yaml <- main config file (LLM, channels, admin list, and so on)
โโโ bins/hone-cli/ <- canonical CLI startup path (`hone-cli start --build`)
โโโ bins/
โ โโโ hone-imessage/ <- iMessage channel entrypoint
โ โโโ hone-discord/ <- Discord channel entrypoint
โ โโโ hone-telegram/ <- Telegram channel entrypoint
โโโ crates/
โ โโโ hone-core/ <- core config and Agent interfaces
โ โโโ hone-channels/ <- shared channel logic (`HoneBotCore`)
โ โโโ hone-tools/ <- tool implementations, including `restart_hone`
โ โโโ hone-llm/ <- LLM call layer
โ โโโ hone-memory/ <- session persistence
โโโ agents/
โ โโโ gemini_cli/ <- Gemini CLI agent
โ โโโ codex_cli/ <- Codex CLI agent
โโโ skills/ <- built-in system skills (`.md` files)
โ โโโ hone_admin/SKILL.md <- this file
โโโ data/
โ โโโ runtime/current.pid <- PID of the current `hone-cli start` supervisor
โ โโโ logs/restart.log <- restart log
โโโ Cargo.toml <- Rust workspace config
Operation 1: View or Modify Source Code or Config
Use the gemini_cli agent (default):
Gemini CLI runs in --yolo mode and can read and write files directly. Tell the user what you are about to do, then operate on the target files.
Common edit cases:
- Modify
config.yaml: adjust the LLM model, timeout, prompts, admin list, and so on
- Modify
skills/<name>/SKILL.md: update a skill's instructions or prompt
- Modify Rust source (
bins/, crates/): a rebuild is required before the change takes effect
Edit flow:
- Read the target file first and confirm its current content
- Make the change
- Show the diff or a summary to the user and confirm it looks correct
- If Rust source changed, restart the service so the change can take effect
- If only
config.yaml or skills/ changed, restart is still required because Hone loads them at startup
Operation 2: Restart Hone
When to use: after modifying Rust source or config so the change can take effect.
Restart tool: restart_hone(confirm="yes")
Flow:
- Confirm the edits are done
- Tell the user: "Hone will restart shortly and be unavailable for about 1-3 minutes, including rebuild time"
- Call the tool:
restart_hone(confirm="yes")
- After the tool returns
success=true, tell the user:
- "Hone will stop and restart in about 3 seconds"
- "The restart includes a rebuild and is expected to take about 1-3 minutes"
- "The service will recover automatically after the restart; if it is still unresponsive after 5 minutes, check the machine manually"
Restart mechanism:
- The tool reads
data/runtime/current.pid to get the current hone-cli start PID
- It waits 3 seconds in the background so the reply can be sent first, then kills the process
- It immediately runs the source CLI build-and-start path in the project root
- The new PID is written to
data/runtime/current.pid
Operation 3: Check Runtime Status
You can use the following to check the current Hone state:
- Read
data/runtime/current.pid to see the process PID
- Read
data/logs/restart.log to see recent restart logs
- Read
data/logs/hone.log to see the runtime logs
Strict Rules
- Confirm before changing: show a diff or summary before restarting
- Restart is risky: during restart, iMessage and Discord replies may be unavailable
- Do not delete critical files: never delete
config.yaml, Cargo.toml, or the data/ directory
- You must use the tool: restarts must go through
restart_hone; do not kill the process directly
- Admins only: if the user is not in the admin list, refuse all admin actions politely