Turn an idea into a device anyone can build: parts, printed parts, wiring, code and a picture guide.
Give your agent the power to build real things.
text-to-cad makes a part. text-to-reality makes the working device.
Describe something you want to exist. Your agent turns it into a build package anyone can put together by following pictures:
No soldering, no breadboard, no electronics experience required. It runs on your machine: no account, no API key, and your projects are plain folders you own.
"Build me a little desk character that shows what my coding agent is doing and how much of my Claude allowance is left."
Agent Meter illustrates this workflow: a Seeed Studio XIAO ESP32-S3 and a small screen inside a printed character, wired with plug-on connectors, with firmware and a picture guide. Its face shows when your agent is working, finished or waiting on you, plus your remaining allowance.
Install text-to-reality from https://github.com/ai-wes/text-to-reality
Or install it yourself. text-to-reality runs through uv:
check it's installed with uv --version, or use
uv's installer. Then run the
commands for your agent and restart it.
claude plugin marketplace add ai-wes/text-to-reality
claude plugin install text-to-reality@ai-wes
To update: claude plugin marketplace update ai-wes, then
claude plugin update text-to-reality@ai-wes.
codex plugin marketplace add ai-wes/text-to-reality
codex plugin add text-to-reality@ai-wes
Cursor also loads the Claude Code plugin; if that's installed, skip this.
git clone --depth 1 https://github.com/ai-wes/text-to-reality ~/.cursor/plugins/local/text-to-reality
Add the server to Claude Desktop's config (Settings > Developer > Edit Config), then
restart. If it can't find uvx, use its full path (which uvx).
{
"mcpServers": {
"text-to-reality": {
"command": "uvx",
"args": ["--no-config", "--managed-python", "--python", "3.13", "--from", "text-to-reality==0.1.1", "text-to-reality", "mcp"]
}
}
}
Projects are saved in text-to-reality/ in the folder the app starts in; set
TEXT_TO_REALITY_DIR in env to choose another folder.
npx skills add ai-wes/text-to-reality
Then add the MCP server above to your agent's MCP config.
text-to-reality plans the whole device; text-to-cad is great at the printed parts. Install both, and the agent uses text-to-cad for the printed parts when it's available.
Each build is a folder. The agent fills in seven stages and checks them:
| Stage | What's in it |
|---|---|
| Requirements | brief.md: what it does, size, power, budget, how you'll know it works |
| Parts | bom.json: every part and quantity |
| Printed parts | CAD source and STL/3MF files |
| Electronics | wiring.json: every wire, its color, and its connector |
| Code | firmware source and how to load it |
| Assembly | the picture guide |
| Testing | what to check, and what a pass looks like |
The local MCP server gives the agent tools to create projects, record files, catch files edited after they were checked, validate the package, keep a build history, and look up board header layouts and plug-on parts.
You can also check a folder yourself:
uvx text-to-reality check ./text-to-reality/my-build
Loose jumper wires fall off and get swapped. JIG_ makes connectors that turn the wires going to one row of pins into a single plug, so wiring becomes plugging things in.
The agent uses JIG_ connectors by default. It looks up each board's pin rows, picks one connector per row, lists what to buy, and notes any row a connector can't fit. Get them at jig-robotics.com →
Each connector is a base that holds the wires in order and a cover that snaps on. The picture guide shows how to load it, close it and plug it on.
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx text-to-realityMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ai-wes-text-to-reality": {
"command": "uvx",
"args": [
"text-to-reality"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencetext-to-reality works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.