One binary. Every REPL. Shared namespace.
rat wraps language runtimes as MCP servers. Start a Python kernel in your terminal β then connect from Claude Desktop, VS Code, Cursor, or any MCP client. Same variables. Same session. Zero glue code.
One installer. One install command. Done.
curl -fsSL https://runanything.dev/install.sh | shirm https://runanything.dev/install.ps1 | iexrat install pyFull IPython with syntax highlighting, tab completion, and magic commands.
rat pyIn [1]: df = pd.read_csv("sales.csv")In [2]: df.head()Open Claude Desktop. βAnalyze the dataframe I just loaded.β It sees the same df.
ββββββββββββ ββββββββββββ βββββββββββββ Terminal β β Claude β β VS Code ββ rat py β β Desktop β β ext ββββββββ¬βββββ ββββββ¬ββββββ ββββββ¬ββββββ βββββββββββββ΄βββββββ¬ββββββ β http://127.0.0.1:8717/mcp β one Python kernelFour tools. Thatβs the whole API.
| Tool | What it does |
|---|---|
run | Execute code or provide input |
look | Inspect variables, complete code, see state |
tail | Recent activity log |
ctl | Reset, cancel, restart |
Same four tools for every language. Same four tools whether youβre a human in a terminal, an LLM, or a notebook app.
Why rat
Your terminal, Claude, VS Code, and Cursor all see the same variables. Load data once, use it everywhere.
rat py in ~/project-a is separate from ~/project-b. Automatic isolation, no configuration.
Python, R, bash, pi agent built in. Add any language with a YAML file and a kernel script β no Go code.
Every kernel is an MCP server. Works with Claude Desktop, Cursor, and any MCP client out of the box.