SDKs
Three packages wrap this API: a Python package, a TypeScript package, and an MCP server that gives an agent most of its endpoints as tools (not key minting and revocation). Each is a client only, and the key you make in Settings is its credential. The same MCP server is also hosted at https://app.mandala.computer/mcp, with nothing to install and no key to copy.
Python
# Python 3.10+: pip install mandala-computer==0.16.0
import os
from mandala_computer import Client
with Client(api_key=os.environ["MANDALA_API_KEY"], base_url=os.environ.get("MANDALA_BASE_URL") or "https://app.mandala.computer/api/v1") as client:
result = client.computers.list()
print(result)Python 3.10 or newer, sync and async clients, and a mandala-py command for ssh, scp, secrets, API keys, webhooks and proxies. Source and full guide →
TypeScript
// Node.js 22+: npm install mandala-computer@0.16.0
import { Client } from "mandala-computer";
const apiKey = process.env.MANDALA_API_KEY;
if (!apiKey) throw new Error("Set MANDALA_API_KEY");
const client = new Client({apiKey, baseUrl: process.env.MANDALA_BASE_URL || "https://app.mandala.computer/api/v1"});
const result = await client.computers.listWithStatus();
console.log(JSON.stringify(result, null, 2));Node 22 or newer, ES modules with type declarations, and mandala, the full command-line client. Source and full guide →
CLI shell
With Node.js 22 or newer, run this on your local machine to open a Linux guest shell. It installs the CLI, signs in through your browser with mandala login, and opens the shell; there is no key to copy. Replace the computer ID placeholder locally. The session is named agent; subsequent shell commands run inside the computer. Use exit to end the shell. Windows shell access is not supported.
# POSIX shell, Node.js 22+
# 1. Install the Mandala CLI (or: brew install mandalacomputer/tap/mandala)
curl -fsSL https://mandala.computer/install.sh | sh -s -- --version 0.16.0
# 2. Sign in (opens your browser)
mandala login
# 3. Open a shell on this computer
mandala terminal 'YOUR_COMPUTER_ID' --session 'agent'