Open-source · self-hosted · any model

Build your agent once.
It's alive everywhere you already are.

Slack, your website, your app, texting you every morning — the same agent, on your machine, on any model. You own all of it.

Get started $ npm i -g ownware
Keyless first run Apache-2.0 Keys never leave your box
Woven from threads · the O you own
The kit · five parts, one engine

Everything to build, run, and reach your agent.

Profile. Engine. Gateway. Reach. Vault. Each does one thing well — and you own all of them.

Build

Your agent is a folder of text.

No SDK to learn, no wizard. agent.json says what it can do; SOUL.md says who it is. Commit it to git, review it in a PR, fork it like code.

profiles/assistant/agent.json
{
  "name": "assistant",
  "model": "anthropic:claude-sonnet-5",
  "tools": {
    "preset": "full",                       // all 37 built-in tools
    "composio": { "toolkits": ["gmail", "slack"] },  // 400+ SaaS
    "mcp": { "linear": { "command": "npx linear-mcp" } }
  },
  "security": { "mode": "ask" }           // pause on risky calls
}

That's the whole agent. SOUL.md beside it is a plain-English system prompt — its personality and policies. preset picks from 37 built-in tools; composio and mcp connect 400+ SaaS apps and any MCP server — no engine code, no redeploy.

Batteries included · zero setup

Your agent lands with 37 tools already wired.

Files, a guarded shell, real Playwright browser control, web search, image & speech, sub-agents, and cross-session memory — built into the engine. Add any MCP server or 400+ SaaS apps via Composio without touching engine code.

One agent · four doors

The same brain, everywhere you need it.

Every surface is just another client of the same contract. From raw HTTP to a schedule that texts you first.

Door 1 · HTTP

Raw wire, any language

POST /run plus an SSE stream. Specified in OpenAPI + AsyncAPI.

Door 2 · SDK

Five lines in your app

@ownware/client — zero deps, Node and browser.

Door 3 · Messaging

Slack, Telegram & more

The same agent answers in your channels — in-process, no second deploy.

Door 4 · Proactive

It reaches back to you

Schedule a run daily; it delivers the result to your channel, unprompted.

Channels · one agent, many doorways

Answer where your customers already are.

Five messaging channels, one brain. Flip one on with a token and the same agent replies there — no second deploy.

Slack

Socket Mode — replies and edits in-thread.

In-process

Telegram

Long-poll — supports typing & live edits.

In-process

Discord

REST — typing & edits, per-channel threads.

In-process

WhatsApp

Cloud API — mount its webhook route.

Webhook

SMS

Twilio — signed webhook, mount the route.

Webhook
assistant · #support on Slack
customer · 9:04 AMWhere's my order #4821? It said shipped two days ago.
agent · 9:04 AMIt's out for delivery — arriving today by 6pm. Tracking: 1Z…4821. Want me to text you when it lands?
Questions

The honest answers.

Yes — the whole kit is Apache-2.0: the engine, the gateway, the 37 built-in tools, the channels, and every security primitive. Free for any use, including commercial. Ownware isn't a product you pay for; it's the runtime other people build their products on.

Never. It's self-hosted — your provider keys live in an encrypted vault (AES-256-GCM) on your machine, and all data stays in ~/.ownware/ on your box. Leave localhost and auth + TLS are forced on, or the server refuses to boot. That's a load-bearing promise, not a pricing tier.

A lot: 37 built-in tools including 17 real Playwright browser actions (navigate, click, type, screenshot, run JS), a guarded shell, file editing, web search + fetch, image generation, text-to-speech and transcription, sub-agents, and cross-session memory. Beyond that, connect any MCP server or 400+ SaaS apps via Composio — all declared in agent.json, no engine code.

Anthropic, OpenAI, Google, OpenRouter — or fully local via Ollama. Switching is a line of config. The very first answer works with no API key at all, running against a local Ollama model.

Five are shipped and tested: Slack, Telegram, Discord, WhatsApp, and SMS. Slack, Telegram and Discord run in-process — start the gateway and they're live with a token. WhatsApp and SMS are webhook-based, so you mount their route on your server. One agent answers on all of them; strangers are held behind fail-closed pairing.

Frameworks hand you parts and you own the loop's quality. Lab SDKs are excellent but locked to one company's models — and are still just libraries: no backend, no channels, no deploy story. Ownware is a Claude-Code-class engine for any model, wrapped in a backend that turns a folder of text into a live, reachable agent.

The engine, gateway, profile format, CLI, keyless first run, bind-safety, the @ownware/client SDK, five channel adapters, and schedules are shipped and tested. It's early and moving fast — the npm publish and the white-label chat UI are the next milestones.

Build your agent. Own all of it.

From install to a live, answering agent in minutes — no API key required to start.

$ npm i -g ownware Read the docs View on GitHub