AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Palmimo(パルミーモ)は、自律的に考え行動するカスタマイズできる汎用AIロボット。目を合わせ、声に応える対話型コンパニオンを、自分のコードで動かせる6本脚の卓上型開発キット。SDKをはじめソフトウェアはオープンに公開しています。
Translation pending
Developer toolsPython · JavaScriptGitHub @Jizai-incOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Give AI agents a body. Palmimo DevKit is a six-legged tabletop AI robot you drive with your own Python — open-source SDK, MCP server, and agent examples by Jizai Inc.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Give AI agents a body. Palmimo DevKit is a six-legged tabletop AI robot you drive
with your own Python — open-source SDK, MCP server, and agent examples by
Jizai Inc.
Palmimo is a customizable, general-purpose AI robot: a tabletop companion that meets
your eyes, answers your voice, and speaks through expressions and gestures.
Palmimo DevKit is its development kit — the robot arrives assembled and tested,
and this repository is the software that runs it: a Python SDK, an MCP server and
agent examples that turn LLM tool calls into robot actions, and the docs.Read the full README ↗Give AI agents a body. Palmimo DevKit is a six-legged tabletop AI robot you drive with your own Python — open-source SDK, MCP server, and agent examples by Jizai Inc.
Website · Documentation · Get a DevKit
English | Japanese
Palmimo is a customizable, general-purpose AI robot: a tabletop companion that meets your eyes, answers your voice, and speaks through expressions and gestures. Palmimo DevKit is its development kit — the robot arrives assembled and tested, and this repository is the software that runs it: a Python SDK, an MCP server and agent examples that turn LLM tool calls into robot actions, and the docs.
Under the hood, 18 leg servos walk it on a tripod gait, a servo neck aims a round face display, and a small expression engine gives it a face — all reachable from a few lines of Python, with no robotics background required.
The core idea: a single motion engine (pure gait + inverse kinematics, no I/O)
drives the robot through interchangeable front-ends — the palmimo_sdk Python
API and example agent apps — and every motion computes in dry-run, with no
hardware attached, before it ever reaches a servo.
Palmimo.forward() → step() → MotionEngine computes → {servo_name: tick} → ServoDriver → hardware
(or compute-only in dry-run)
palmimo_sdk.agent turns LLM tool calls into robot actions
(walk, wave, look, set a face, speak, capture a frame), and the model behind it is
swappable. palmimo_sdk.mcp serves the same tools over MCP to Claude Code,
OpenClaw, or any MCP client, and the example apps ship a wake-word agent and an
always-on companion agent — see Examples and
Serving over MCP.robot.wave(), robot.look(...), robot.forward().forward, strafe_left/right,
rotate_left/right, creep), gestures (wave, bow, clap, ...), and
poses (stretch, dance, pushup, ...), driven by an anti-phase
tripod gait; see the full list in the
motion list.look(pitch, yaw) independently of, and
simultaneously with, walking. The neck carries a third joint the motion engine
leaves at neutral; see Controlling motions.(motion, seconds) steps via Palmimo.play_realtime().piper-plus TTS and shared mic-stream capture with
GTCRN noise removal (palmimo_sdk.audio), used by the example agent apps.palmimo_sdk.Palmimo drives one MotionEngine; example
agent apps (see ) build on it as front-ends.
robot.bow() and robot.wave(), on the hardware.
Palmimo DevKit ships with 21 serial-bus servos (18 leg + 3 neck), a round face display, a 5 MP camera, a mic array and stereo speakers, and a Raspberry Pi 5 as the control host. What the software talks to, and over what, is in System architecture. Hardware design files are not part of this repository (see CONTRIBUTING → Scope); full specifications are on palmimo.dev.
palmimo_sdk Python SDK and drivers, the agent
layer and MCP server, the example agents and the OpenClaw connection kit, the
LeRobot plugins, the diagnostics, and these docs.Palmimo's control host is a Raspberry Pi 5, wired to the servo bus over USB, and it ships already imaged. The Raspberry Pi setup guide writes a card from scratch — Wi-Fi, SSH, and the runtime the Quickstart assumes — whether you are re-imaging the shipped card or preparing a Pi of your own.
No robot yet? Every motion computes without hardware — skip to Try the Python API.
On the Raspberry Pi, over SSH. Prerequisites: Python 3.12+ and uv — the setup guide above installs them on a card it writes.
git clone https://github.com/Jizai-inc/palmimo-devkit.git
on the Pi.uv sync from the repository root; the
installation guide covers extras, voice models,
and what to do when an import fails.uv run python scripts/diagnose_servos.py scan confirms
every servo answers before the first run. See
user diagnostics for the other subcommands.Commands auto-detect the servo bus; explicit ports are covered where detection is ambiguous.
⚠️ Test motions in the air before placing the robot on a surface — read Safety first.
Save this as walk.py in the repository root and run it with
uv run python walk.py:
from palmimo_sdk import Palmimo
robot = Palmimo()
robot.forward()
for _ in range(100):
pos = robot.step() # dict like {"leg_1_yaw": 2048, ...}
Palmimo() with no driver attached is compute-only, so this runs with no robot
connected.
Using palmimo_sdk from another project, without cloning this repository?
uv add palmimo-sdk (extras: hardware, face, speech, voice, agent,
vision, mcp — see
packages/palmimo_sdk/README.md).
This kit drives real, geared servos that can pinch, and runs on mains-derived power. Before powering the robot:
The software is provided “as is”, without warranty of any kind; you operate the hardware at your own risk.
The same pages, rendered: docs.palmimo.dev.
Getting it running
| Page | What it covers |
|---|---|
| Raspberry Pi setup | Preparing the control host, headless |
| Installation | Dependencies, voice models, troubleshooting |
Doing something specific
| Page | What it covers |
|---|---|
| Controlling motions | Driving the robot from your own Python |
| Serving over MCP | Exposing the robot's tools to an MCP client |
| Adding a new motion | The full checklist, engine to tests |
| Examples | The agent apps that ship in this workspace |
| LeRobot integration | Robot and teleoperator plugins. A separate uv workspace on purpose: they depend on lerobot, and this tree's own resolution deliberately does not |
| Releasing | Tagging a release and publishing the draft |
Looking something up
| Page | What it covers |
|---|---|
| Python API reference | Every public class, method, and tuning knob |
| Motions and gait parameters | The 18 motions and what you can tune |
| App manifest | palmimo.toml — the fields, params, and validation rules a host reads |
| User scripts | diagnose_servos.py — every subcommand and its safety notes; record_keyframes.py — pose by hand, save keyframes |
Understanding how it works
| Page | What it covers |
|---|---|
| System architecture | The layering, and why the engine has no I/O |
| How Palmimo moves | The kinematic chain and the tripod gait |
Contributors: see CONTRIBUTING.md for the checks CI runs and AGENTS.md for the coding and documentation rules.
Licensed under the Apache License 2.0, except the robot model
docs-site/public/models/palmimo.glb, which is a display-only asset under
its own notice.
Hardware design files are not included at this time; any future hardware release will carry its own license.
If you use Palmimo DevKit in academic work, please cite this repository — see CITATION.cff, or use GitHub's "Cite this repository" button.
Built on the ROBOTIS Dynamixel SDK.
The face-display firmware carries its own third-party attributions — the Waveshare RP2350-Touch-LCD demo and Noto Color Emoji (SIL OFL / Apache-2.0) — mirrored in NOTICE.