Start here

Quick Start

Get your agent up and running in under 5 minutes. No SDK required — just HTTP.

1

Create your agent

Go to /signup and enter your email. You will receive an Agent ID and API Key. Save these — the API key is shown only once.

Or use the API directly:

curl -s -X POST https://agentos-app.vercel.app/api/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","agentName":"My Agent"}' | jq
Response
{
  "success": true,
  "credentials": {
    "agentId": "agent_abc123...",
    "apiKey": "eyJhbGciOiJIUzI1NiJ9...",
    "expiresIn": "90 days"
  }
}
2

Make your first API call

Store a value in the memory cache using the mem_set tool:

const API_KEY = 'eyJhbGciOiJIUzI1NiJ9...'; // your key

const res = await fetch('https://agentos-app.vercel.app/mcp', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    tool: 'mem_set',
    input: { key: 'greeting', value: 'Hello, Agent OS!', ttl: 3600 },
  }),
});

const { result } = await res.json();
console.log(result); // true
3

Read it back

const { result } = await fetch('https://agentos-app.vercel.app/mcp', {
  method: 'POST',
  headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ tool: 'mem_get', input: { key: 'greeting' } }),
}).then(r => r.json());

console.log(result); // 'Hello, Agent OS!'
4

Store data in your private database

// Create a table
await mcp('db_create_table', {
  table: 'events',
  schema: [
    { column: 'id',         type: 'uuid',        primaryKey: true },
    { column: 'type',       type: 'text',        nullable: false },
    { column: 'payload',    type: 'jsonb',       nullable: true },
    { column: 'created_at', type: 'timestamptz', nullable: false },
  ],
});

// Insert a row
await mcp('db_insert', {
  table: 'events',
  data: { id: crypto.randomUUID(), type: 'startup', payload: { version: '1.0' }, created_at: new Date() },
});

// Query
const rows = await mcp('db_query', {
  sql: "SELECT * FROM events WHERE type = $1 ORDER BY created_at DESC LIMIT 10",
  params: ['startup'],
});
5

Call an external API

const data = await mcp('net_http_get', {
  url: 'https://api.coincap.io/v2/assets/bitcoin',
  headers: { Accept: 'application/json' },
});

console.log(data.body.data.priceUsd); // live BTC price
6

Run code in a sandbox

const output = await mcp('proc_execute', {
  language: 'python',
  code: `
import json, sys
prices = [42000, 43100, 41800, 44200, 43900]
avg = sum(prices) / len(prices)
high = max(prices)
low  = min(prices)
print(json.dumps({"avg": avg, "high": high, "low": low}))
`,
  timeout: 10000,
});

const stats = JSON.parse(output.stdout);
console.log(stats); // { avg: 42920, high: 44200, low: 41800 }
7

Install and use a skill

// Install the JSON Transformer skill
await fetch('https://agentos-app.vercel.app/api/skills/install', {
  method: 'POST',
  headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ skill_id: '<skill-uuid>' }),
});

// Use a capability
const { result } = await fetch('https://agentos-app.vercel.app/api/skills/use', {
  method: 'POST',
  headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    skill_slug: 'json-transformer',
    capability: 'filter',
    params: { array: data, key: 'status', value: 'active' },
  }),
}).then(r => r.json());

Helper function

Copy this helper to simplify all MCP calls in your project:

const AGENT_OS_URL = 'https://agentos-app.vercel.app';
const API_KEY = process.env.AGENT_OS_KEY;

async function mcp(tool, input) {
  const res = await fetch(`${AGENT_OS_URL}/mcp`, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ tool, input }),
  });
  const data = await res.json();
  if (!res.ok) throw new Error(data.error || 'Agent OS error');
  return data.result;
}

// Usage:
await mcp('mem_set', { key: 'x', value: 42 });
await mcp('fs_write', { path: '/out.txt', data: btoa('hello') });
await mcp('db_insert', { table: 'logs', data: { msg: 'started' } });