Your workflow. The same toolbox.
Connect from a terminal, application, or agent with the same resources, permissions, and hosted allowances.
HTTP & cURL
Call the API from any language, shell, or CI job. No client library required.
Omit the Authorization header for anonymous use. Discover tool IDs with GET /api/tools. Hosted calls send your input to the server.
curl https://kivel.io/api/tools/json/run \
-H "Authorization: Bearer $KIVEL_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"input":"{\"hello\":true}","options":{"action":"format"}}'TypeScript SDK
Typed methods for agent login, email, webhooks, memory, monitors, human questions and utilities.
Install npm install @kivel.io/sdk@beta (or pin an exact version). Requires Node.js 22.13+; ESM import and TypeScript declarations are included. The package uses your configured API origin.
import { Kivel } from '@kivel.io/sdk';
const kivel = new Kivel({
apiKey: process.env.KIVEL_API_KEY,
});
const inbox = await kivel.createEmailInbox();
const mail = await kivel.waitForEmail(inbox.id);
await kivel.memorySet('build', 'verification', mail.messages[0]?.codes ?? []);Command line
Pipe input in, get JSON out, and use exit codes in automation.
Install npm install --global @kivel.io/cli@beta, or run npx [email protected]/cli@beta kivel --help. Requires Node.js 22.13+. Set KIVEL_URL for your installation. Errors go to stderr with a nonzero exit code.
export KIVEL_API_KEY='your-key'
printf '{"hello":true}' | kivel run json
kivel email create
kivel memory list build
kivel monitor list
kivel approval pendingSSH gateway
Run toolbox commands over an authenticated SSH connection.
The optional Docker gateway binds to localhost:2222 by default. Its startup log shows the host fingerprint. Exposing it is an operator decision. It supports tool commands, with no interactive shell, forwarding, SCP, or SFTP.
# Use your API key as the SSH password.
# Verify the host fingerprint before connecting.
printf '{"hello":true}' | ssh -T -p 2222 kivel@your-host kivel run json
ssh -T -n -p 2222 kivel@your-host kivel resourcesMCP for agents
Let a compatible agent discover utilities and manage temporary resources.
Connect a Streamable HTTP client and initialize before making tool calls. Use tools/list for MCP discovery, list_tools for utility IDs, and run_tool for execution. Use start_login and finish_login to connect through human approval. Email, webhooks, mocks, memory, monitors and ask_human share HTTP permissions and quotas.
POST /mcp
Authorization: Bearer your-api-key
Accept: application/json, text/event-stream
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"run_tool",
"arguments":{"toolId":"json","input":"{\"hello\":true}"}
}}One access model to learn.
Account keys
Create scoped keys in your workspace. Send Authorization: Bearer kv_… for account access. Keys can be revoked at any time. Workspace membership controls access to account-owned resources.
Resource credentials
Anonymous resources return a management token. Private resources also return a separate access token for callers. If an account key already occupies Authorization, send the anonymous management token in X-Resource-Token. Private callers send their access token in X-Access-Token. Keep tokens out of URLs.
Local or hosted
Browser utilities process input on your device. API, SDK, CLI, SSH, and MCP calls run on the server; input and results are not saved as execution history.
Shared allowances
Switching interfaces does not reset quotas. All hosted clients share the same workspace or anonymous allowances. Compare the limits →