opencharm
v0.19.0
Published
An open-source body for the AI agent you already run: a face, a voice, one key. Claude Code, Codex, Gemini CLI, Hermes, OpenClaw or any ACP or OpenAI-compatible agent; on a small board, your Mac's notch or the browser.
Maintainers
Readme
opencharm
The command line for OpenCharm: the open-source charm for your AI agent. A small device that becomes the face and voice of the agent you already run: Claude Code, Codex, Gemini CLI, Hermes Agent, OpenClaw, any ACP agent or anything OpenAI-compatible. A face you can type, one key, about $32 of hardware.
npx opencharm| Command | What it does |
| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| opencharm | Says hello with a blinking face |
| opencharm faces | Lists all 22 moods |
| opencharm face [mood] | Shows one mood (random if omitted), e.g. opencharm face learned |
| opencharm states | What your agent is doing, and the face for each state |
| opencharm hardware | What to buy and print |
| opencharm init [dir] | Clone the starter workspace (opencharm-starter) and fit it to this machine (--agent claude (default), codex, gemini, goose, hermes, openclaw; --from <git url> for a fork; --name <name> and --colour <colour> (one of the six, or #RRGGBB) write the charm's identity, the charm block) |
| opencharm serve | Start charmd, the charm daemon, next to your agent (--config <file>) |
| opencharm sim | The emulator (OpenCharm OS in a browser tab, for developing the charm), talking to charmd (--url, --port, --no-open) |
| sudo opencharm setup --domain <d> | Install charmd as a hardened systemd service on a Linux server (--dry-run prints the plan; see docs/deploy.md) |
| opencharm pair [code] | Pair the charm showing that code; with no code, says how many charms wait and asks for the code on yours (typed, never shown); you choose its PIN (--name <name>) |
| opencharm status | What's running (charmd, each connected charm's build, the starter commit of the workspace; spec 015), then the paired charms and whether they are connected, locked or blocked, with each one's battery when it has one (spec 009) |
| opencharm lock / unlock / revoke <charm> | Lock it now; clear a block and unlock; forget it |
| opencharm new [charm] | A new conversation with your agent for that charm, or every paired charm when none is named: its next turn starts a fresh session (a reply in progress finishes first). charmd also starts one after newConversationAfterMinutes of quiet (default 120) |
| opencharm replies on\|off | The desktop charm speaks its replies, or shows them as text, from the next one; a charm on a board always speaks. To keep it, set "speakReplies": false in opencharm.json |
| opencharm look | Show the charm's look, or change it on every unlocked charm until charmd restarts (--colour <colour>, --greeting <text>, --motion full\|calm, --volume <0-100>); to keep it, set charm in opencharm.json |
| opencharm dev face <charm> <state\|feeling> [text] / dev say <charm> <text> / dev ask <charm> <question> | Show a face, speak, or ask a question (hold = yes, press = no) on a connected charm (testing) |
| opencharm voice / voice install | The local voice's models (Parakeet listening, Supertonic speaking): whether they're here, and download them now (charmd does it on its first start otherwise) |
| opencharm mcp | The charm's tools for an agent (MCP over stdio): say, show_face, ask, notify, set_look, new_conversation. charmd adds it to ACP agents by itself. Other agents running as your user can add opencharm mcp --config <file> to their MCP settings; never an agent running as another user (it reaches charmd's admin socket) |
Options: --colour white|cobalt|lime|lilac|sun|coal, --no-anim, --no-color (also respects NO_COLOR).
Node 24 or newer. Runtime dependencies: ws, zod.
Source and hardware: https://github.com/opencharm-labs/opencharm
Development: this package lives in the OpenCharm monorepo (packages/cli). Run it from the repo root with npm run cli -- <command>; npm run build -w packages/cli bundles dist/main.mjs. opencharm --version prints cli@<version> (<commit>) (spec 015); from source it says [email protected]: released versions come from their cli@ tag, and each merged fix/feat/perf that touches the CLI publishes one (CONTRIBUTING, "Releasing").
Not affiliated with Meta, Nous Research, OpenClaw, Waveshare or Espressif.
