Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Embodify

Give your agent a body.

Your best embodied agent is your favorite agent.

Embodify lets the agent you use every day — Claude Code, Codex or any other MCP-capable agent — see and control robots directly, and keeps everything else that makes it yours. Bring in frontier models with embodied manipulation skills, such as GPT-6 Astra and Claude Opus 5.5, and let your AI companion step into the physical world.

中文 · One-line setup · Backends · For research · Skills · Roadmap

First release (0.1.0a1). Supports LIBERO and RoboDojo today; support for RoboTwin and the LeRobot SO-101 arm is coming soon.

Why Embodify

Most embodied agents are built from scratch: a dedicated harness wraps a model, hands it a fixed set of robot actions, and nothing else. The agent you use every day already has what those harnesses lack:

  • Context and memory. It manages long sessions and remembers across them.
  • It knows you. Your preferences, your projects, your lab setup.
  • It talks with you in the terminal, IDE, desktop app or chat you already use. You can ask how it is going, step in, correct it, or teach it mid-task.
  • It has a computer. It writes and runs code, uses its tools, searches the web and reads papers.

Embodify keeps all of that and adds a body. Install the plugin and your agent gets robot observation and control tools over MCP — a protocol it already uses for everything else — plus skills that teach it how to operate robots and how to achieve recursive self-improvement (RSI) from its own experience.

Why "best"

A general agent with a body is stronger than a harness that can only move a robot:

  1. It can think with tools, not only act. When a task needs geometry it can write a script; when it needs a fact it can search; when it needs perception it can run a model.
  2. It keeps track. Long-horizon manipulation fails when the agent forgets what it already tried. Mature agents manage context and memory well.
  3. It works with you. It asks you when a task is ambiguous, takes your guidance when it gets stuck, and remembers your corrections next time.
  4. It controls robots in its native language. Robot control arrives as ordinary MCP tool calls, the same shape as every other tool the agent uses.
  5. It builds on frontier embodied models. Your agent runs on models with frontier embodied manipulation skills, such as GPT-6 Astra and Claude Opus 5.5, and every model upgrade makes your robot better, with no retraining.
  6. It improves itself recursively. It turns every episode into lessons, lessons into rules and rules into new skills, and gets better the more it works.
  7. Zero-shot, few-shot and in-context learning come easily. A general agent takes on new tasks without training: describe a task in plain language (zero-shot), show it a few examples (few-shot), or put instructions, demonstrations and past experience in its context (in-context learning, ICL).

What's inside

Embodify is an agent plugin with two parts:

Part What it gives your agent
MCP server (embodify-mcp, registered as embodify) Tools to list tasks, start an episode, observe cameras and robot state, move end effectors, open and close grippers, and coordinate two arms.
Skills (embodify-skills) Know-how: running a careful observe–act loop, keeping a profile of the robot body and cameras, and learning from past episodes. More perception skills are coming soon.
flowchart LR
  A["Your agent<br/>Claude Code · Codex · …"] -- "MCP (stdio)" --> B["embodify-mcp<br/>episodes · budgets · logs"]
  K["embodify-skills"] -. "loaded by" .-> A
  B --> I["Backend interface"]
  I --> L["LIBERO"]
  I --> R["RoboDojo"]
  I --> T["RoboTwin (WIP)"]
  I --> H["SO-101 and other real robots (WIP)"]
  I -. "SSH / TCP" .-> G["Remote server"]

The MCP server is the front end. Each simulator, benchmark or robot is a backend behind one small interface, so adding a new one does not change what the agent sees. Highlights:

  • Works with any MCP host. No LLM calls inside; your agent keeps its own model, memory, skills and tools.
  • One call, one motion. The control loop runs next to the simulator. Each action returns the actual displacement, remaining error, a stop reason and fresh camera images.
  • Remote simulation. Run the simulator on your lab's GPU server over SSH while the agent stays on your laptop. Heartbeats keep high-latency links alive; if the link drops, the episode aborts cleanly and reset_task reconnects.
  • Fair evaluation. When you use Embodify to evaluate an agent's manipulation skills, task success is recorded for humans and never exposed to the agent.
  • Live monitor and replay. Watch running episodes live in a browser, or replay past ones frame by frame.

Backends

Backend Robot Status
fake, fake-two-arm Kinematic diagnostic, one or two arms ✅ Included, no simulator needed
libero Franka Panda, 130 tasks in 5 suites ✅ Included
robodojo Dual ARX X5, all 54 simulation tasks ✅ Included
RoboTwin Dual-arm manipulation benchmark 🚧 Coming soon
LeRobot SO-101 Real robot: 5-DoF arm with gripper 🚧 Coming soon
remote Any backend above, on another machine ✅ SSH or trusted TCP

Coming soon: robot arms such as xArm, mobile manipulators, humanoids and dexterous hands. If there is a simulator or robot you would like us to support, open a GitHub issue with details about it. We welcome contributions of new backends.

For research

Embodify doubles as a testbed for the embodied manipulation abilities of language models and agent frameworks. Run GPT, Claude, Gemini, Qwen and other models, through Claude Code, Codex or your own agent framework, on the same simulated benchmarks with the same tools, and compare them directly.

  • Standard benchmarks: LIBERO (130 tasks in 5 suites) and RoboDojo (54 tasks), with RoboTwin coming soon.
  • Fair by design: task success is recorded for evaluators and never shown to the agent, and --lock-task fixes the scene.
  • Controlled budgets: episode budgets and per-call step limits are configurable and logged.
  • Complete records: tool calls, robot states and camera frames are saved for replay and analysis.

Typical studies include zero-shot robot manipulation by frontier models, comparisons of agent frameworks on the same model, the effect of skills and memory, and recursive self-improvement across episodes. See citation for how to cite Embodify and what to report.

Quick start

One-line setup

Paste this into Claude Code, Codex or any other agent you use:

Install Embodify (https://github.com/YidaYang/embodify) for yourself, then set up a LIBERO environment or connect to my existing simulator.

That's it. Your agent installs the MCP server and skills into its own configuration, sets up the simulator and tells you when to restart the session. (Agents: follow the agent setup guide.)

Manual install

Requires Python 3.8+ (3.10+ recommended for the host side).

git clone https://github.com/YidaYang/embodify.git
cd embodify
python -m pip install .
embodify-mcp-smoke            # end-to-end check: no simulator, GPU or model needed

Then register the MCP server as embodify and install the embodify-skills pack in your agent. The commands below start on the Fake backend, so you can try the tools right away; connect a real simulator next.

Claude Code

claude mcp add --scope user embodify -- embodify-mcp --backend fake
claude plugin marketplace add YidaYang/embodify
claude plugin install embodify-skills@embodify

Codex

codex mcp add embodify -- embodify-mcp --backend fake
codex plugin marketplace add YidaYang/embodify
codex plugin add embodify-skills@embodify

Simulators can take minutes to start, so give the server generous timeouts in ~/.codex/config.toml:

[mcp_servers.embodify]
startup_timeout_sec = 120
tool_timeout_sec = 900

Other agents

  1. Register the server in your agent's MCP configuration using examples/mcp.json.
  2. If your agent supports Agent Skills (SKILL.md folders), copy or link the folders in embodify-skills/skills/ into its skills directory.

Restart the session, then ask your agent something like "Reset the task, describe what the cameras show, then raise the gripper 5 cm."

Connect a real simulator

Let your agent do this step. Paste:

Connect Embodify to a real simulator for me: set up LIBERO on this machine, or connect to my existing simulator. Follow https://github.com/YidaYang/embodify/blob/main/docs/agent-setup.md.

Your agent installs the simulator or connects to yours over SSH, points the embodify server at it and asks you to restart the session. To do it by hand, see backend setup.

Watch robots live and replay episodes

Add --monitor-port 8765 to the server command and open http://127.0.0.1:8765 to watch the robot work live, with every camera view, the robot state and each tool call your agent makes, or to replay any past episode frame by frame. To browse saved runs without a running server:

embodify-mcp-monitor --root out/mcp

The monitor listens on localhost only.

MCP tools

Tool Purpose
get_session_info Current run, task, step budget and robot state; no images
list_tasks Browse the backend's task catalogue
reset_task Start an episode and return the first camera images
observe Camera images and robot state, without moving
move_relative Move one end effector by a translation and optional rotation
set_gripper Open or close a gripper
control_arms Move several arms together with common progress (two-arm backends)
stop_episode End the episode and write its record

Translations are in meters, rotations in radians, quaternions in xyzw order. Frames and stop reasons are defined in the action contract.

Skills

The embodify-skills pack contains:

Skill Status What it does
embodied-control v0 The observe–act loop: small moves, reading stop reasons, verifying grasps, releasing in a separate call
robot-profile v0 Keep a profile of the robot: arms, cameras, frames, calibration and measured behavior
task-experience v0 Write a lesson after every episode, read relevant lessons before the next, promote repeated lessons to rules
object-segmentation Coming soon Open-vocabulary segmentation of camera images
depth-ranging Coming soon Pixel to 3D position from depth and calibration

Skills are grouped into three families that will keep growing:

  1. Embodiment knowledge: how this particular robot is built, where its cameras are and how it actually moves.
  2. Manipulation tools: perception, measurement and planning tools, including ideas from work such as Code as Policies.
  3. Recursive self-improvement: turning experience into lessons, lessons into rules and eventually into new skills, improving recursively.

Roadmap

  • Backends: RoboTwin; LeRobot SO-101 as the first real robot, with workspace limits, human-judged success and an emergency stop; more real robots and simulators.
  • Embodiments: mobile manipulators, humanoids, dexterous hands.
  • Observations: depth images, camera calibration and more through the tools.
  • Skills: segmentation, depth ranging and other perception tools; code-as-policy style tools; a stronger recursive self-improvement loop, and more.

Development

python -m pip install -e ".[dev]"
python -m pytest -q
python tools/check_release.py

See contributing, writing a backend, backend setup, action contract and security.

License and citation

Original code is licensed under Apache-2.0. Bundled third-party code keeps its original notices. See citation for how to cite Embodify.

Metadata

Release files for embodify-mcp 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for embodify-mcp 0.1.0a1
File Size Uploaded
embodify_mcp-0.1.0a1.tar.gz 201.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for embodify-mcp 0.1.0a1
File Interpreter ABI Platform
embodify_mcp-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 341.4 kB

Release files / embodify_mcp-0.1.0a1.tar.gz

Download URL embodify_mcp-0.1.0a1.tar.gz
Size 201.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7812a4ad3d7e4c43412edfbe808bf06378b7176a522004621d7c63b22c2ccc91
BLAKE2b-256 checksum
How to use checksums
21b8eaf0e89a2fedeaa3bff4800b3154c2d9bb1ff2adb8cf83c421173655ae09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / embodify_mcp-0.1.0a1-py3-none-any.whl

Download URL embodify_mcp-0.1.0a1-py3-none-any.whl
Size 140.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6566ccf627cb646b1ef890507e9dccb2ecdcd36976c9d96df74db1ad878d9ed
BLAKE2b-256 checksum
How to use checksums
7647ab82a04e51469418fe2b53bd6634add8ebb17b6d30d01667a6a7c6f50879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page