Meet your agentic companion

A tiny charm that gives the agent you already run a face, a voice and one key

OR MAKE IT YOURS: COLOUR, NAME, FACE ↓
08:10 · PICK-UP

You pick Momo up. It’s pleased to see you, and says the one thing that matters.

  • ONE AGENT AT A TIME
  • ONE KEY
  • A FACE YOU CAN TYPE
  • MIC ONLY WHILE HELD
  • S.0146.8MMSQUARE FRONT, 22 MM DEEP
  • S.021KEYHOLD, PRESS, TAP THE FACE
  • S.0322MOODS13 AGENT STATES
  • S.041AGENTTHE ONE YOU ALREADY USE
  • S.050API KEYSSTORED ON THE DEVICE
  • S.06~$32OF HARDWARE

WORKS WITHCLAUDE CODECODEXHERMES AGENTOPENCLAWANY ACP AGENT

01THE FACE

A face you can type.

Two characters for eyes and one for a mouth. Readable from across the room, cheap to draw, and anyone can write a new one and share it as text.

NEUTRAL
HAPPY
JOY
CUTE
WINK
LOVED
LISTENING
THINKING
FOCUSED
CURIOUS
CONFUSED
SURPRISED
DOUBTFUL
UNAMUSED
STRAIN
SAD
OOPS
DIZZY
SLEEPY
LEARNED
MONEY
NEEDS YOU
IT FEELS ALIVE

Small moves, all the time.

  • BREATHESAll the time; slower and deeper when it’s asleep.
  • BLINKSQuick, double or slow.
  • GLANCESLooks around, and wanders up while it thinks.
  • LOOKS AT YOUFollows your finger on the screen, and squashes when the key goes down.
  • LISTENSIts eyes swell with your voice while you hold the key.
  • GREETSSays hi after you unlock it, and is pleased after it helps.
  • DOZESFalls asleep after about four minutes alone, with z’s.
  • REACTSA poke gets a different reaction each time. Three quick pokes make it dizzy.
02MAKE IT YOURS

Make it yours.

Pick its colour, give it a name and choose a face. Every charm on this page follows, by the notch too. Nothing you pick here is saved or sent.

MOMO

Hi! I’m Momo.

MOMO · WHITE · HAPPY

COLOUR · SHELL AND GLYPHS
LETTERS, DIGITS AND SPACES · UP TO 12
FACE · 22 MOODS

Set the same in the desktop charm’s Settings, or in your workspace’s opencharm.json: the board, the emulator and the notch all follow it, with its greeting, voice and how calm it moves. On the board you print the shell in this colour too. On a real charm, your agent’s state picks the face, and your agent can try on a new look when you ask.

03AT A GLANCE

See what your agent is doing without asking.

The charm listens to your agent’s events and turns each one into a face. Thinking, working, stuck, done, learned something new.

Hello^ ^

You pick it up or sit down.

IMU PICK-UP / FIRST TOUCH OF THE DAY
ListeningO O

You hold the key and talk.

KEY HELD (ON DEVICE)
Thinkingo _ o

The agent is working on an answer.

AGENT TURN STARTED
Working− −

A tool or a long task is running.

TOOL CALL STARTED
Needs youo ? o

A question or an approval. Orange ring, one sound.

APPROVAL REQUEST / CLARIFYING QUESTION
Done^ v ^

A task finished. One line, then back to the face.

TURN COMPLETE / CRON JOB DONE
Stuck> <

Retries are piling up.

3 TOOL ERRORS IN A ROW
Failedx x

Something broke. It says what, in one line.

RUN FAILED
Learned* v *

It made or improved a skill.

HERMES: SKILL CREATED OR UPDATED
Noted^ −

It saved something about you.

MEMORY WRITE (E.G. USER.MD / MEMORY.MD)
Cost$ $

Spend passed a limit you set.

BUDGET THRESHOLD
Asleep− −

Face-down or quiet hours. The agent keeps running.

IMU FACE-DOWN / SCHEDULE
Idleo o

Nothing going on. Slow blinks and glances.

NO EVENTS
04USE CASES

What you’ll actually use it for.

Whatever your agent can do, the charm does. It adds a face, a voice and one key; the skills and tools are your agent’s. A few examples:

01Talk to your agent

Hold the key, ask anything, hear one clear answer.

ANY AGENT

02It needs you

Your agent asks before it acts. Hold for yes, press for no.

AGENT APPROVALS

03Know when it’s done

Start a long task and walk away. The face tells you when it’s finished.

CLAUDE CODE, CODEX…

04Remember this

Say it once. Your agent keeps it, and you can read the list.

AGENT MEMORY

05Learn something

Five-minute quizzes that adapt to you. It reacts to every answer.

ANY MODEL

06Morning brief

Pick it up and hear the one thing that matters today.

CALENDAR + WEATHER TOOLS

07Cook hands-free

One step at a time, timers included, readable with flour on your hands.

ANY RECIPE URL

08Your home

Lights, heating, the door. Say it on your way out.

HOME ASSISTANT MCP

09Travel days

Gate changes, walking time, the right platform.

EMAIL + FLIGHT STATUS

10Wind down

It gets sleepy when you should. Tomorrow sorted.

YOUR CALENDAR
05WHY A COMPANION

Why not just an app?

A phone app could do most of this. The rest is why it’s a small thing that sits by your laptop or hangs from your keys.

IN VIEW

Visible without asking.

Your phone lies face-down and locked. The charm sits by your keyboard, and a glance tells you whether your agent is busy, stuck or done.

FOCUS

It won’t pull you into your phone.

Checking on your agent shouldn’t end in your inbox. The charm does one job, then goes quiet.

ATTACHMENT

You can get attached to it.

Nobody bonds with an app icon. People do with a small thing that looks back and nods when the job is done.

YOURS

Make it yours.

Print its shell in your colour, name it, write its faces, flash its firmware. It’s open down to the case files.

WHAT IT ISN’T

Not a phone. Not a new assistant.

It doesn’t replace anything. Your agent keeps its memory, skills and model. The charm is the part it was missing: eyes, a voice, and a key you can find without looking.

IT WORKS WHERE YOUR AGENT LIVES
ON YOUR COMPUTER

It works on your machine.

Your agent runs next to you, so it can read your files, run your tests, edit code and use the apps you let it. The board and the desktop charm both talk to it here.

ON YOUR SERVER

Or on a server that never sleeps.

Run Hermes, OpenClaw or anything OpenAI-compatible on a server you own, and it keeps working with your laptop shut. The board reaches it from anywhere over an encrypted link.

ANYTHING RISKY TURNS THE FACE ORANGE AND WAITS FOR YOUR KEY · SERVER GUIDE ↗

06THE DESKTOP CHARM

The charm, without the hardware.

No board yet? The desktop charm lives at the top of your screen: by the notch on a Mac, as a small black pill on Windows. It’s the same OpenCharm OS as the board and the emulator, about 2% of one core at rest, and a 4 MB app.

CAPTION

Three new issues since this morning. The login bug is the one people keep hitting; I’d start there.

FIG. 06 · THE EYES ON THE NOTCH’S EARS, THE PANEL OPEN BELOW · NO NOTCH (OR WINDOWS): A BLACK PILL AT THE TOP CENTRE
BY THE NOTCH

Hold the talk key in any app.

Its eyes sit on either side of the notch, or of a small black pill on Windows, breathing and blinking. Hold ⌥ Option + Space (Ctrl + Alt + Space on Windows) and talk; you can change the key.

THE PANEL

Answers open below the notch.

When it answers, thinks or asks, a panel opens underneath: captions, and questions where hold means yes and press means no.

SETTINGS

Your folder, your agent, your voice.

Choose the agent’s folder, the agent (Claude Code, Codex, Gemini CLI, goose, Hermes, OpenClaw, any ACP command or an OpenAI-compatible server) and the voice: local on a Mac, OpenAI with the key in your keychain, or none. It runs its own charmd and pairs by itself.

GET IT

macOS and Windows.

Download it from GitHub Releases, built by the repository’s own CI from this code, with checksums and build provenance so you can check what you got. Or build it yourself from the code.

THE MIC IS ON ONLY WHILE YOU HOLD THE KEY · NO CODE OR PIN TO TYPE: A RANDOM PIN STAYS IN YOUR KEYCHAIN · EVERY BUILD COMES WITH SHA256SUMS

07SCREEN AND KEY

One thing on screen. One key in your hand.

The face never leaves. When it talks, the eyes move up and the words scroll under them like captions. When it needs a decision, an orange ring appears.

AFace

Most of the time, just the face. It blinks, glances around and reacts. On the desktop, the eyes sit by the notch and the panel stays shut.

RESTING · LISTENING · WORKING

BSpeech

When it answers, the words type out under the eyes, or in a panel below the notch. Long answers scroll like captions; nothing runs off the screen.

ANSWERS · CONFIRMATIONS

CDecision

When your agent needs you, an orange ring appears, around the screen or the panel, and the key says what it will do.

APPROVALS · QUESTIONS
HOLD THE KEY

Talk to it, like a walkie-talkie. The mic is on only while you hold it. When the ring is orange, holding means yes.

PRESS THE KEY

Everything else: wake it, stop it talking, dismiss, or say no.

TAP ITS FACE

It reacts. That’s all. You never need a swipe.

On the desktop charm the key is ⌥ Option + Space (Ctrl + Alt + Space on Windows), in any app: hold it to talk, press it for everything else. You can change it in Settings.

THE MIC IS ON ONLY WHILE THE KEY IS HELD: ON THE CHARM, IN THE EMULATOR AND IN THE DESKTOP CHARM · IF SOMEONE CAN’T USE IT TEN SECONDS AFTER PICKING IT UP, WE’VE FAILED · ONE THING PER SCREEN · GLYPHS ON TRUE BLACK · ORANGE ONLY WHEN IT NEEDS YOU · TARGET: A REACTION IN UNDER 100 MS

08HOW IT WORKS

A small body for the brain you already have.

The charm holds no API keys and runs no model. charmd, a small daemon on your machine, carries its voice to your agent and brings back speech, faces and questions.

1 · THE CHARM

Face, voice, one key

One OS, three bodies: the board, the desktop charm on your Mac or Windows PC, and the emulator in your browser. Hold the key to talk; the mic is open only while you hold it.

charmd
2 · CHARMD

Runs next to your agent

Pairing and the PIN, speech on your machine or with your own key, and the charm’s tools for your agent. On your laptop, a Mac mini or a server; the desktop charm brings its own.

3 · YOUR AGENT

The one you already use

Claude Code, Codex, Hermes Agent, OpenClaw and more, one at a time. It keeps its memory, skills and model; the charm is its body, and asks you before it acts.

TERMINALFROM SOURCE TODAY · NPM SOON
# the desktop charm does this for you # by hand, next to your agent: $ opencharm init momo ✓ workspace cloned from opencharm-starter $ cd momo && opencharm serve ✓ charmd listening on this machine ✓ agent: Claude Code, over ACP ✓ voice: on this Mac (say + whisper) $ opencharm pair 482913 ✓ paired momo · you choose its PIN # hold the key and say: "momo, what’s on today?" _
PIECEWHAT IT DOESSTATUS
OpenCharm OSfirmware/core, C++
Glyph faces, the key, the PIN pad, questions on the charm. Runs in your browser as an emulator today; the board port is next.EMULATOR
Desktop charmapps/desktop, Tauri 2
The same OS at the top of your screen, with its own charmd. macOS and Windows, built by CI.MACOS · WINDOWS
charmdthe charm daemon
Pairing and PIN, speech on your machine or with your OpenAI key, questions, the charm’s own tools for your agent.BUILT
Your agentACP or an OpenAI-style API
Claude Code, Codex, Gemini CLI, goose, Hermes Agent, OpenClaw. Claude Code is tested end to end.CLAUDE CODE
Starter workspaceopencharm-starter
The folder your agent works in: who the charm is, its skills, what it may do, what it remembers.BUILT
09HACK IT

Three levels of making it yours.

Most people stay on level one. Going deeper changes everything, down to the firmware.

LEVEL 1 · TEACH ITNO CODE

Write a sentence

Who the charm is and what it knows are text files in its workspace. Ask your coding agent to change them.

# charm/.agents/skills/wrap-up/SKILL.md When I say "wrap up": - today in 3 lines - what you finished for me - tomorrow’s first meeting # written by momo, kept by you
LEVEL 2 · TOOLSMCP

Give it tools

Add MCP servers to its workspace. It already has the charm’s own: faces, questions, the orange “it needs you”.

# charm/.mcp.json { "mcpServers": { "home": { "command": "your-home-mcp" } } } # and the charm’s own tools: show_face · ask · notify · say · set_look ask: "Turn off the oven?" → yes
LEVEL 3 · FIRMWAREC++ · ESP-IDF

Change the body

Fork OpenCharm OS: one C++ core for the board and the browser emulator, tested on your computer.

// firmware/core/src/app.cpp case ServerKind::Ask: set_needs_you(true); view_.show_decision( ask_text_, ask_yes_, ask_no_); break;
10BUILD ONE

One board, one evening.

The hardware is a ready-made board that already has the screen, microphones, speaker amp, battery and a case. OpenCharm goes onto it once the device port is done; until then it runs in your browser or on your computer. Printing your own shell is optional.

015 MIN

Buy the board

Waveshare ESP32-S3-Touch-AMOLED-2.16, the version with a battery.

025 MIN

Try it first, then flash

The charm runs today in your browser (opencharm sim) or on your computer (the desktop charm). Flashing the board comes with the device port; Waveshare’s factory firmware can always be restored.

035 MIN

Pair with your agent

opencharm init, then opencharm serve next to Claude Code, Codex, Hermes or another agent, and say hi.

04OPTIONAL

Print your shell

Three parts in your colour, no supports, strap from the seam.

01BOARDWaveshare ESP32-S3-Touch-AMOLED-2.16, with battery. 2.16″ 480 × 480 AMOLED, ESP32-S3, two mics, 46 × 46 × 22.5 mm case$31.99
02CABLEUSB-C that carries data—
03SHELLOptional: about 14 cm³ of matte PLA in your colour, a little of a contrast colour for the key~ $1
04STRAPOptional: any thin phone-charm strap~ $2
TOTALThe board alone, or with a printed shell and a strap$32–35
11WHY IT WORKS

Why this won’t be another AI Pin.

Two gadgets promised to replace your phone. Both were slow, missed the basics and asked you to learn a new way of doing things. Meta has since announced its own charm, built around its own agent. OpenCharm is the open-source alternative: the agent you already run, on hardware you build.

TopicHUMANE AI PINRABBIT R1META MUSE CHARM ANNOUNCED SEPT 2026OPENCHARM
PRICE$699 + $24 a month$199Not announced yetAbout $32 of hardware. No subscription.
SPEEDSeconds per answer, often longerSlow cloud round-tripsA real-time voice model, says Meta. Not out yet.Aims to react in under 100 ms (target). It says when a task is slow.
THE BASICSCouldn’t reliably set a timer or an alarmBig demos, few everyday tasks that workedTalks with Meta’s own AI, as a cartoon characterEveryday jobs, done by the agent you already trust and its tools.
LEARNING CURVEGestures, a laser screen, a palm to aimScroll wheel, menus, a “large action model”Press and talk to a character on a 2-inch screenOne key, three moves. Hold, press, tap.
THE PROMISEReplace your phoneReplace your appsA companion everywhere, over 5GReplace nothing. A body for the agent you already run.
CAMERAYesYes, one that rotatesTwoNone. The microphone is on only while you hold the key.
IF THE COMPANY DIESBricked in Feb 2025Depends on their cloudMeta’s agent, Meta’s cloudNothing happens. Your agent and charmd run on your machine; the code is yours.

SOURCES: THE VERGE, ENGADGET, WIRED AND WASHINGTON POST REVIEWS (APR–MAY 2024) · HP ACQUISITION AND SHUTDOWN (FEB 2025) · RABBIT ACTIVE-USER FIGURES AS REPORTED SEPT 2024 · META: ITS MUSE CHARM PAGE AND LAUNCH COVERAGE (CNBC, 23 SEPT 2026; DEZEEN, 25 SEPT 2026), AS OF 2 OCT 2026 · NOT AFFILIATED WITH META

12QUESTIONS

Questions people ask.

Short answers. The long ones are in the code and in OPENCHARM.md.

What is OpenCharm?

OpenCharm is an open-source body for the AI agent you already run: a face made of typed glyphs, a voice and one key. It runs on a small ESP32-S3 board you build yourself, at the top of your computer’s screen as the desktop charm (macOS and Windows), or in your browser as an emulator. One agent at a time.

Which agents does it work with?

Any agent that speaks ACP, the Agent Client Protocol: Claude Code, Codex, Gemini CLI, goose, Hermes Agent and OpenClaw, or any server with an OpenAI-compatible API. Claude Code is the one tested end to end. charmd, a small daemon next to your agent, connects the charm to one agent at a time.

Do I need the hardware?

No. The desktop charm runs the same OpenCharm OS on your Mac or Windows PC, with a talk key that works in any app. Download it from GitHub Releases or build it from the code. The emulator runs the charm in your browser. The board is for when you want it on your desk.

Is it always listening?

No. The microphone opens only while you hold the key, on the board, in the emulator and in the desktop charm; let go and it closes. There is no wake word. The rule lives in OpenCharm OS itself, so your agent can’t open the microphone on its own.

Where do my data and keys live?

With you. Your agent runs on your own machine or server, with its own memory and model. The charm holds no API keys and never stores its PIN; charmd keeps only hashes. Speech can stay on your Mac with the local voice, or go to OpenAI with your own key.

How much does it cost?

The software is free and open source, and so are the desktop charm and the emulator. The board, a Waveshare ESP32-S3-Touch-AMOLED-2.16 with battery, is about $32 before shipping; a printed shell and a strap add a few dollars. We sell nothing: you buy the parts yourself.

Does it work on Windows?

Yes. The desktop charm runs on Windows as well as macOS: a small black pill at the top centre of the screen, with Ctrl + Alt + Space as the talk key. Both are built by the repository’s CI from the same code.

Is it safe, and is there a warranty?

It is open source and provided as is, with no warranty: you build and use it at your own risk. It is built to be careful: a PIN locks the charm on every power-on, five wrong tries block it, and you can lock or revoke it from your machine.

13BUILD YOURS

Nothing to buy from us. Build yours.

Everything is open: the firmware, charmd, the shell you print and the build guide. Get the board, print the shell, flash it, and give it a name when you pair it.