opencharm

agent
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Fail
  • spawnSync — Synchronous process spawning in .claude/hooks/format-edited-file.mjs
  • process.env — Environment variable access in .claude/hooks/format-edited-file.mjs
  • rm -rf — Recursive force deletion command in .github/workflows/cli-release.yml
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Meet your agentic companion: a face, a voice and one key for your AI agent.

README.md

OpenCharm icon

OpenCharm

Give your agent a body. OpenCharm is a small open-source companion that becomes the face and voice of the AI agent you already run: Claude Code, Codex, Gemini CLI, Hermes Agent, OpenClaw, any ACP agent or anything OpenAI-compatible. Today it lives by your Mac's notch as the desktop charm; next, it's a small board you build that sits by your laptop or hangs from your keys. Hold its one key to talk; glance at its face to see what your agent is doing.

  • One agent at a time. The charm is the body of an agent that already works. It doesn't replace your agent, your phone or your apps.
  • A face you can type. Two characters for eyes and one for a mouth (^ ^, o O, > <), in its own colour on true black.
  • One key, three moves. Hold to talk, press for everything else, tap the face.
  • About $32 of hardware (September 2026 prices): a ready-made Waveshare board, plus a small speaker and an optional 3D-printed shell.

Site: opencharm.dev · Product spec: OPENCHARM.md · Look: DESIGN.md · Build one: docs/build.md · Run charmd on a server: docs/deploy.md · No hardware? the desktop charm

Status

Early. Tested end to end on macOS (3 October 2026): opencharm init, charmd (the charm daemon), the emulator and Claude Code, from pairing to a spoken answer through a real microphone. The desktop charm runs on macOS; its Windows build is untested on a real machine. charmd also has presets for Codex, Gemini CLI, goose, Hermes and OpenClaw, and adapters for OpenAI-compatible agents: covered by tests with a stand-in agent, not yet each tried for real. Firmware for the real board (spec 009) is next. Work is specified spec by spec (specs/).

Get it

The desktop charm (macOS). Download it from the latest release (how). In Settings, choose your agent's folder, then hold ⌥ Space and talk. The Windows build is untested on a real machine.

The board is next: what to buy and print is in docs/build.md (npx opencharm hardware lists it too), and OpenCharm goes onto it with the device port (spec 009).

Develop

npm ci
npm run check            # format, lint, typecheck, tests, Python lint
npm run dev              # the website
npm run cli -- faces     # the CLI from source

The emulator is OpenCharm OS in a browser tab, for working on the firmware and the board before the hardware (it isn't a way to use OpenCharm). With the published CLI (Node 24, git, and an agent such as Claude Code):

npm i -g opencharm
opencharm init my-charm && cd my-charm   # a charm workspace (default name Momo)
opencharm serve                          # charmd; it runs your agent in charm/
opencharm sim                            # in another terminal: the emulator
opencharm pair <code>                    # the code on its screen; then choose a PIN

From source (Emscripten, see CONTRIBUTING.md): npm run firmware:sim, then npm run cli -- serve and, in another terminal, npm run sim; pair with npm run cli -- pair <code>. In the emulator, hold Space to talk.

How we work (specs, branches, PRs, agents): CONTRIBUTING.md. Coding agents start at AGENTS.md.

Licences

What Licence
Software and firmware (everything not listed below) MIT
Hardware designs (hardware/) CERN-OHL-S-2.0
Docs, brand art, face designs (docs/, brand/, OPENCHARM.md) CC BY-SA 4.0
Fonts (firmware/core/fonts/) Geist Mono and Noto Sans Symbols 2, SIL OFL 1.1 (licence files next to them)
Third party three.js (MIT, hardware/prototype/vendor/), Waveshare drawings (Apache-2.0, hardware/reference/)

What ships compiled into our binaries comes with its own notices:

  • LVGL, cJSON and libopus in the WebAssembly: firmware/sim/THIRD_PARTY_NOTICES.md
  • the desktop app's Rust crates: generated at build time

The OpenCharm name and logo are not licensed for use as your own brand.

No warranty

OpenCharm is an open-source project. Everything in this repository (software, firmware, hardware designs, 3D models, build guides and documentation) is provided "as is", without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose and non-infringement.

  • At your own risk. Building, flashing, charging, carrying and using a charm is your responsibility. In no event shall the authors or contributors be liable for any claim, damage, injury, data loss or other liability arising from the project or from building or using a device based on it.
  • Batteries. Lithium batteries can swell, overheat or catch fire if damaged, crushed, mis-wired or charged wrongly. Follow docs/build.md section 3, never leave a charging device unattended, and stop using any battery that is swollen, hot or damaged.
  • Not a certified product. A charm built from this repo has no CE, FCC, UL or other certification as a finished product. Third-party parts are covered only by their makers' terms.
  • Not for critical use. Don't rely on the charm for safety, medical, emergency or time-critical purposes, including timers, alarms or reminders set through it.
  • Your agent, your responsibility. The charm talks to an AI agent you run and configure; what that agent does is up to you and its own software.
  • We sell nothing. There are no sales, pre-orders, payments or waitlists, and we ship no devices. You build your own charm from the open files.

Not affiliated with Meta, Nous Research, OpenClaw, Waveshare or Espressif.

Reviews (0)

No results found