Meet rysh.ai: one agent engine for your terminal, browser, Slack, and website
Your company probably runs five AIs that don't know each other exist. rysh is one agent engine for every surface — observable and owned.
Your company probably runs five AIs that don't know each other exist.
A coding assistant in the editor. A chatbot bolted onto the website. Someone's LangChain script in a cron job. A Slack bot nobody trusts. And a ChatGPT tab where the actual work happens. Five vendors, five bills, five silos — and not one of them can see what the others did.
I've been building rysh because I think that's the wrong shape entirely. Not five AIs. One agent engine, every surface.
What rysh is
rysh starts life as an agentic terminal multiplexer — think tmux or Zellij, but every pane is a conversation, not just glass in front of a shell. A pane can be:
- a plain shell (it's a real terminal — vim and htop work),
- an AI conversation wired to that shell, your files, and 46+ built-in tools,
- an autonomous agent you spawned from a markdown file,
- or a live external channel — an agent answering your email or your website chat.
You flip a single pane between shell and AI with a double-tap of Escape. Same pane, same working directory, same context. The AI isn't in another tab; it's in the terminal with you.
Getting started is one binary — the message broker is embedded, so there's no daemon zoo to stand up:
brew install rysh-ai/rysh/rysh
rysh
But the terminal is the starting surface, not the whole product. That's the part I want to be precise about, because "AI terminal" undersells what we're actually attempting.
One engine, every surface
Here's the core move. In rysh, an agent is a markdown file — persona in the body, configuration in the frontmatter, secrets as ${ENV_VAR} tokens:
---
name: support-bot
description: Support engineer for our CLI product
---
You are support-bot. Answer briefly, only from the product
facts below. If you don't know, say so and open a ticket.
Spawn it and it becomes a named coworker in your workspace:
##agent spawn support-bot.md
@support-bot triage the failing CI run in pane 2
That same file — the same engine underneath — can be wired to external channels as a humanoid: today that's Slack, email (IMAP/SMTP), and website chat, with WhatsApp and phone on the roadmap. The same logic that answers you in a pane answers a customer on your site. One definition, versioned in git, deployed everywhere.
And the engine's reach keeps going:
- Browser — an agent can drive a real Chrome: navigate, click, extract, fill forms, with recipes written (again) in one markdown file.
- Your APIs — Rysh Forge points at an OpenAPI spec and generates agent tools and an MCP server from it (GraphQL/gRPC are roadmap).
- The MCP ecosystem — rysh is an MCP client, so external MCP servers' tools plug straight into the engine.
- Your team — any pane can be shared live to a teammate, view-only or full control, through the collaboration server.
The unifying idea: every one of these is the same engine with the same governance. Competitors do one surface. The bet behind rysh is that the surface count is the product.
Agents you can trust because you can see them
The reason most companies keep AI at arm's length isn't capability — it's that agents run in black boxes. rysh's answer is architectural, not a dashboard bolted on later.
Every tool call an agent makes is visible in a pane, as it happens. Dangerous operations don't just execute: file edits show you a coloured diff before anything touches disk, mutating shell commands stop for explicit approval, git commit waits for a yes. Safe, read-only commands flow without friction — the allowlist is safe-by-default, not naggy-by-default.
For external channels, governance is per-channel: run a humanoid autonomous, or in draft-and-confirm mode where every outbound reply waits for a human in the terminal before it posts (live for email and website chat today). Start careful. Earn trust. Flip the switch when you're ready.
And when your agent needs to reason about credentials, SecretNAT (##snat) translates real secret values into stable tokens before anything reaches the model provider — we've verified on the wire that the provider receives the token, not the value. Your keys stay yours in the most literal sense.
You own it
The third pillar, and the one I'd argue matters most in five years: ownership.
Your agent logic lives in markdown files in your repo — reviewable in PRs, diffable, revertable. rysh is self-hostable: run it on your own machines with your own Anthropic key (rysh runs on Claude — more on why we build on the best available model rather than pretending we trained one in a separate post). Your data path is your machine → Anthropic, not your machine → our servers → who knows.
That's the difference between adopting AI and renting it.
Where this is going
I call the destination an AI-native company: agents doing real work across dev, ops, and customer support — writing code, running incident response, answering customers — with humans able to see every action, approve the risky ones, and own the logic and the data.
Most companies today are AI-painted: a chatbot on the website, a copilot in the editor, and a strategy deck. The gap between those two states is exactly the gap rysh is built to close.
We're early, and I'd rather say that plainly than hide it. Some things are shipped and filmed (we've timed brew install → agent answering on company Slack at 1 minute 47 seconds, real clock on screen). Some things are roadmap, and we label them as roadmap every time.
If the shape of this resonates — one engine, every surface, observable, owned — the best way in right now is below.
We're recruiting design partners. Hands-on early access, a direct line to the founder, and your workflow shaping the roadmap. Early is a feature: rysh.ai/design-partner
Next up: Every pane is a conversation · AI-painted vs AI-native