Metadata-Version: 2.5
Name: palmimo-sdk
Version: 0.1.0
Summary: Palmimo SDK — Palmimo facade, MotionEngine, and ServoDriver abstraction
Project-URL: Homepage, https://palmimo.dev
Project-URL: Repository, https://github.com/Jizai-inc/palmimo-devkit
Project-URL: Documentation, https://docs.palmimo.dev
Project-URL: Issues, https://github.com/Jizai-inc/palmimo-devkit/issues
Project-URL: Changelog, https://github.com/Jizai-inc/palmimo-devkit/releases
Author-email: "Jizai Inc." <noreply@jizai.ai>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: dynamixel,hexapod,palmimo,robotics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: pyserial>=3.5
Provides-Extra: agent
Requires-Dist: pydantic>=2; extra == 'agent'
Provides-Extra: face
Requires-Dist: pyserial; extra == 'face'
Provides-Extra: hardware
Requires-Dist: dynamixel-sdk>=3.7.31; extra == 'hardware'
Provides-Extra: mcp
Requires-Dist: mcp-types<3,>=2; extra == 'mcp'
Requires-Dist: mcp<3,>=2; extra == 'mcp'
Requires-Dist: pydantic>=2; extra == 'mcp'
Requires-Dist: starlette>=0.27; extra == 'mcp'
Requires-Dist: uvicorn>=0.31.1; extra == 'mcp'
Provides-Extra: speech
Requires-Dist: piper-plus; extra == 'speech'
Provides-Extra: vision
Requires-Dist: opencv-python>=4; extra == 'vision'
Provides-Extra: voice
Requires-Dist: ai-edge-litert>=2.1; extra == 'voice'
Requires-Dist: numpy>=1.24; extra == 'voice'
Requires-Dist: sherpa-onnx-core>=1.13.0; (platform_machine == 'aarch64' or sys_platform == 'darwin') and extra == 'voice'
Requires-Dist: sherpa-onnx>=1.13.0; extra == 'voice'
Requires-Dist: sounddevice>=0.4; extra == 'voice'
Description-Content-Type: text/markdown

# palmimo-sdk

The Python SDK for [Palmimo](https://palmimo.dev), a six-legged tabletop AI
robot: a single facade over its motion engine, servo I/O, and peripherals
(face display, speaker, camera, mic). Every motion computes in dry-run, with
no hardware attached, before it ever reaches a servo.

## Installation

```
uv add palmimo-sdk      # or: pip install palmimo-sdk
```

The base install is compute-only — no hardware, audio, or vision
dependencies. Add an extra for what you need:

| Extra | Adds |
|---|---|
| `hardware` | `DynamixelDriver`, the bundled servo-bus backend |
| `face` | `FaceDisplay` (USB-CDC face-display board) |
| `speech` | `Speaker` TTS (piper-plus) |
| `voice` | `MicStream` capture + GTCRN noise removal |
| `agent` | LLM tool-calling layer (`palmimo_sdk.agent`) |
| `vision` | `HeadCamera` (OpenCV) |
| `mcp` | MCP server exposing the agent toolset |

```
uv add "palmimo-sdk[hardware,agent]"
```

## Quick example

```python
from palmimo_sdk import Palmimo

robot = Palmimo()  # compute-only: no driver attached, so nothing touches hardware
robot.forward()
for _ in range(100):
    positions = robot.step()  # {"leg_1_yaw": 2048, ...}
```

Attach a `DynamixelDriver` (from the `hardware` extra) to drive real servos;
see the API reference for the full surface.

## Links

- Documentation: https://docs.palmimo.dev
- Repository: https://github.com/Jizai-inc/palmimo-devkit
- API reference: https://docs.palmimo.dev/reference/api-reference/
- License: https://github.com/Jizai-inc/palmimo-devkit/blob/main/LICENSE (Apache-2.0)
