# Maritime > Maritime is a cloud platform for deploying, hosting, and managing AI agents. Agents run on serverless infrastructure with a sleep/wake architecture (they sleep when idle and wake in about a second), so a typical agent costs $1 per agent per month on a flat plan with no usage metering. Deploy from the CLI, the dashboard, or clone a Template: a complete, working agent (prompts, tools, integrations, memory, triggers, and hosting) shared as a single link. Key facts: - Supported agent frameworks: Claude Code (via the Claude Agent SDK), OpenClaw, Hermes (NousResearch), ZeroClaw, and any custom Docker container. - Every agent gets a live API endpoint, encrypted secrets, persistent memory, and optional channels (Telegram, WhatsApp, Google Workspace). - Templates are cloneable agent packages; publishers can share them via link or the public library. - Pricing is a subscription plan that works out to $1 per machine per month: Free (3 machines forever), Starter $20/mo (20 machines), Growth $100/mo (100 machines), Scale $500/mo (500 machines), and Enterprise (custom). A machine is one micro-VM. An agent is a machine and a Computer (a persistent Linux desktop driven over MCP) is a machine, so one plan covers both and a $20 plan holds 20 agents, 20 computers, or any mix. Computers need a paid plan; the free plan runs agents. Each plan also sets how many machines may run at the same time: 1 free, 5 on Starter, 25 on Growth, 60 on Scale. Sleeping machines are free and do not count toward that. Extra machines beyond the included count are flat per-plan prices ($1.50/$1.25/$1.00 per machine per month), and add-ons (always-on $20, extra RAM, extra SSD) are flat monthly prices prorated by day. Nothing is metered: messages, tokens, sessions, and awake seconds never change the hosting bill. ## Docs - [Documentation home](https://maritime.sh/docs): Overview of the Maritime platform - [Quickstart](https://maritime.sh/docs/quickstart): Deploy your first AI agent and chat with it in under 5 minutes with the Maritime CLI - [How Maritime works](https://maritime.sh/docs/how-it-works): The platform mental model: agents as micro-VMs with a persistent /data volume, sleep/wake (~1s wake), triggers, projects, the LLM proxy, and flat pricing - [Choose a framework](https://maritime.sh/docs/frameworks): Side-by-side comparison of the ready-made templates (Claude Code, OpenClaw, Hermes, ZeroClaw, DeepSeek Harness) with template IDs - [Env vars & sizing](https://maritime.sh/docs/configuration): Encrypted environment variables and secrets, how changes reach a running agent, per-agent resource sizing - [Triggers & schedules](https://maritime.sh/docs/triggers): Cron and webhook triggers that wake sleeping agents; timers inside a sleeping VM do not fire, so schedules live on the platform - [Public web agents](https://maritime.sh/docs/web-apps): Serve any Dockerfile repo on a public no-login HTTPS URL that sleeps when idle and wakes on the next visit (maritime create --repo --public --port ) - [How builds work](https://maritime.sh/docs/builds): Repo/ZIP builds on a dedicated BuildKit worker, layer caching, private repos via the GitHub App, build logs, failure semantics - [CLI Reference](https://maritime.sh/docs/cli): Deploy and manage agents from the terminal - [REST API](https://maritime.sh/docs/api): REST API for managing agents programmatically - [Limits & errors](https://maritime.sh/docs/limits): Every platform cap and error code: 30s custom-agent reply budget, 100 MB file transfers, exec 60s/120s + 256 KB output, ZIP 500 MB/2 GB, 8 GB RAM / 100 GB SSD ceilings, HTTP status meanings - [Drive Maritime from an AI agent](https://maritime.sh/docs/ai-agents): Ready-made prompt and machine-readable contract (maritime guide --json, --json output, exit codes) for AI assistants operating the CLI - [CLI instructions file for AI agents](https://maritime.sh/docs/cli/llms.txt): Plain-text instructions to paste into an agent's context (CLAUDE.md, AGENTS.md, system prompt) or fetch directly; covers auth, the JSON contract, exit codes, core tasks, and gotchas - [Templates](https://maritime.sh/docs/templates): Package an agent into a cloneable, shareable template - [Channels](https://maritime.sh/docs/channels): Connect agents to Telegram, WhatsApp, and Google Workspace. Bring-your-own Telegram bot via API: POST /api/projects/{projectId}/channels/telegram {"botToken": "..."} (projectId is on the agent object; key needs the secrets scope) - [Migrate to Maritime](https://maritime.sh/docs/migrations): Move cron jobs, bots, scheduled functions, and background workers from AWS, Google Cloud, Azure, Cloudflare, Vercel, Heroku, Fly.io, Render, DigitalOcean, or any VPS onto Maritime agents, with read-only inventory credentials and a reversible cutover. Full per-provider runbooks (complete agent-followable procedures) at https://maritime.sh/docs/migrations/aws, /gcp, /azure, /cloudflare, /vercel, /heroku, /fly, /render, /digitalocean, /vps - [Billing](https://maritime.sh/docs/billing): Plans, included machines (agents and computers share one count), the awake limit, and flat per-machine add-ons - [Computers](https://maritime.sh/docs/computers): Give every end user of your product a persistent Linux desktop that your model drives over MCP or REST (screenshot, click, type, run_shell, files, a human takeover viewer). One computer per end user, sleeps after 5 idle minutes and wakes in about a second. A computer is a machine on the same plan as your agents, and needs a paid plan; nothing is billed per session or per action ## Build a platform (SDK) - [Build on Maritime](https://maritime.sh/docs/build): Give every one of your users their own AI agent. TypeScript (npm maritime-sdk) and Python (pip maritime) SDKs provision, chat with, configure, and tear down one isolated agent per customer from your backend - [SDK quickstart](https://maritime.sh/docs/sdk/quickstart): Install, get an API key, provision + chat with your first per-customer agent; provision() is idempotent on externalId, safe to call on every sign-in - [SDK agents](https://maritime.sh/docs/sdk/agents): Provision, chat, per-customer encrypted secrets, lifecycle, logs, files, exec, scheduled wakes, typed errors - [SDK webhooks](https://maritime.sh/docs/sdk/webhooks): Signed HMAC-SHA256 lifecycle events (agent.deployed, agent.error, ...) with the agent's external_id in every delivery - [Keys & scopes](https://maritime.sh/docs/sdk/authentication): mk_ API keys with provision / deploy / secrets / manage scopes; mint narrow keys per subsystem - [SDK reference](https://maritime.sh/docs/sdk): Every method in both languages, client options, retries, error classes - [SDK examples](https://maritime.sh/docs/sdk/examples): Runnable TypeScript and Python examples on GitHub ## Frameworks - [OpenClaw](https://maritime.sh/docs/frameworks/openclaw): Deploy OpenClaw agents on Maritime - [Hermes](https://maritime.sh/docs/frameworks/hermes): NousResearch's Hermes agent on Maritime - [ZeroClaw](https://maritime.sh/docs/frameworks/zeroclaw): Ultra-lightweight Rust agent - [Claude Code](https://maritime.sh/docs/frameworks/claude-code): Claude Code (Claude Agent SDK) with its own always-on computer: real bash + file tools in a persistent workspace, chat via dashboard/CLI/API/Telegram. Needs ANTHROPIC_API_KEY (secret env var; no proxy fallback, the LLM proxy is OpenAI-format) and IS_SANDBOX=1 (containers run as root and Claude Code refuses bypassPermissions under root without it; baked into the official template image) - [Codex](https://maritime.sh/docs/frameworks/codex): OpenAI Codex CLI with its own always-on computer: shell + file tools in a persistent workspace, chat via dashboard/CLI/API/Telegram, the interactive TUI in the terminal tab. No key required (Maritime metered proxy over the Responses API by default); optional OPENAI_API_KEY, or "codex login --device-auth" from the terminal for a ChatGPT plan (sign-in persists under /data/.codex) - [DeepSeek Harness](https://maritime.sh/docs/frameworks/deepseek-harness): DeepSeek's plugin-based open-source agent harness (dsh) with its full web workbench: sessions, plan mode, tool approvals, session replay, plugins. No API key needed (routes through the Maritime LLM proxy by default; DSH_MODEL picks the model). Version-pinned image because upstream is a fast-moving developer preview - [Deploy any container](https://maritime.sh/docs/frameworks/custom): Bring your own framework (CrewAI, LangGraph, AutoGen, or any custom Docker container); repo and ZIP deploys build on Maritime's dedicated build worker (see https://maritime.sh/docs/builds) ## Custom container contract (for AI coding agents) Any Docker image becomes a full Maritime agent by speaking this contract: 1. Run a long-lived HTTP server on 0.0.0.0:$PORT (PORT is injected, currently 18789 in micro-VMs; NEVER hardcode 8080, it collides with the VM port forwarder). 2. Answer GET /health with any 2xx, fast and side-effect-free. 3. Answer POST /chat. Request JSON: {"message": "...", "source": "front_door"|"cli"|"telegram"|...}. Reply within 30 seconds with plain text or JSON containing one of: response, reply, message, text, output. 4. Persist state under /data only (survives restarts and sleep/wake); the rest of the filesystem is disposable. Processes are snapshotted and resumed, not restarted. Also: never use a shell-string CMD (CMD ["sh", "-c", "server ... $PORT"]); micro-VM init flattens the CMD to one string, quoting breaks, and the VM kernel-panics on boot. Launch via a real program (e.g. a start.py that reads $PORT and starts the server directly). Install ca-certificates in slim images, and use the injected OPENAI_API_KEY + OPENAI_BASE_URL (Maritime's metered LLM proxy; CrewAI and LangChain read both natively). Deploy a repo with `maritime create --repo ` (Dockerfile at the repo root; .dockerignore honored; builds run on a dedicated build worker, typically 1-3 minutes) or POST /api/agents with {framework: "custom", githubRepo, branch}. Deploy a pre-built public-registry image via POST /api/agents with {framework: "custom", imageName: "ghcr.io/acme/img:tag"} or swap an existing agent with `maritime deploy --source docker --image ` (private registries unsupported; private GitHub repos work via the Maritime GitHub App, pass framework explicitly). ZIP uploads cap at 500 MB compressed / 2 GB unpacked. For scheduled wakes, serve GET /schedules or push via the SDK's observeScheduler/observe_scheduler; timers inside a sleeping VM do not fire. Full guide: https://maritime.sh/docs/frameworks/custom ## Product - [Pricing](https://maritime.sh/pricing): Plans that work out to $1 per machine per month (Free/Starter/Growth/Scale), where agents and Computers draw on the same machine count on any paid plan (Computers is not on the free plan), plus flat per-machine add-ons; no usage metering - [OpenClaw hosting](https://maritime.sh/openclaw): Managed OpenClaw hosting - [Maritime for Startups](https://maritime.sh/startups): Credits program for companies running a thousand AI agents, or planning to. Accepted companies get $1,000 in Maritime credits, and Maritime then matches every $1,000 they spend with another $1,000 in credits, up to $5,000, or up to $10,000 if backed by a partner accelerator or fund. Every accepted team works directly with an in-house forward-deployed engineer, plus direct access to the founders and a private Discord channel. Open to teams from idea stage through Series A, including bootstrapped. Apply on the page; applicants get a confirmation email immediately and a decision in 2 to 3 days. - [Maritime for Students](https://maritime.sh/students): 4 months of the Starter plan (20 AI agents, normally $20/month) free for students. Apply at maritime.sh/students with an academic email (.edu, or international equivalents like .ac.uk or .edu.cn); a personal single-use access code arrives by email within about a day, redeemable at checkout within 60 days. After the free 4 months Starter renews at $20/month and can be canceled anytime. - [Blog](https://maritime.sh/blog): Engineering notes on AI agent deployment and infrastructure - [Changelog](https://maritime.sh/changelog): New features and platform updates as they ship, one entry per release ## Optional - [Privacy Policy](https://maritime.sh/privacy) - [Terms of Service](https://maritime.sh/terms)