Just Another Intelligent Tool
Jait is one small gateway you install yourself. It gives an agent real terminals, your filesystem, a controllable browser, live previews, memory, and scheduled jobs — then lets you reach all of it from your laptop, your server, or your phone. Your code never leaves your disk, and you bring whichever model you already pay for.
Use Codex, Claude Code, Gemini, OpenCode, Copilot, Ollama, LM Studio, or any OpenAI-compatible endpoint while Jait keeps tools, previews, files, and prompts in one workspace.
Run terminals, node tools, file edits, SSH prompts, previews, and browser sessions with approval where it matters.
Manager and swarm modes split work across background threads while preserving repos, change counts, and task history.
Polished web, desktop, and mobile clients, plus WhatsApp channel replies and remote node deploys that link other machines as filesystem nodes.
Actual Jait interface
Refactor the auth middleware to support JWT refresh tokens
I'll update the middleware and add a refresh endpoint.
Auth middleware now validates and rotates refresh tokens. All types check out.
The complete logged-in workspace in editor mode. The screenshot follows your light or dark theme choice.
One command to install Jait globally on your machine.
The gateway boots with auth, tools, scheduler, memory, and preview support.
Open Jait from desktop, mobile, or another browser on your network.
Use API keys, local models, or trusted CLI providers from the same project.
Tell the agent what to build; it handles tools, files, previews, and tests.
Review diffs, schedule jobs, delegate threads, and keep iterating.
Use localhost or a network URL from any browser.
localhost:8000
Create a new Express API with TypeScript, JWT auth, and a SQLite database
I'll scaffold the project, run tools, and open a preview.
Not a roadmap — this is the tool surface shipping in v0.1.708. The agent picks from 64 built-in tools, and every one of them runs on your machine.
Read, write, and patch files with backup and restore. A code-graph index answers "what calls this?" across large repos, ranked search spans the gateway and any attached machines, and it can generate architecture diagrams from the code itself.
file.readfile.writefile.patchcodegraph.queryarchitecture.generateFull PTY terminals, not a sandboxed echo. The agent runs builds and tests, streams output live, and can target a specific terminal you point it at. Elevated commands and installs ask first.
jait.terminalterminal.runterminal.streamelevated.runos.installA Playwright-driven browser the agent can actually use — navigate, click, type, scroll, pick from dropdowns, and read structured page snapshots instead of guessing. There's a sandboxed Chromium container with noVNC when you want it fully isolated.
browser.navigatebrowser.clickbrowser.typebrowser.snapshotbrowser.screenshotOne call boots your project, proxies the localhost port into the workspace, and hands back a controllable browser session. The agent can click through the app it just changed, read the preview's logs, and restart it — so "does it actually work?" gets answered before you look.
preview.openpreview.inspectpreview.logspreview.restartFour modes: Developer for hands-on work, Manager to delegate, Swarm to fan out, Thread for focused side-runs. Sub-agents stream inline, share a todo list, and message each other. Loop backstops and duplicate-call quarantine stop runaway runs.
agent.spawnagent.messagethread.controljait.todosDurable memories survive across sessions and projects, and the agent can search everything you've said before or pull the exact trace of an old chat. Drop durable instructions in ~/.jait/SOUL.md and every provider picks them up.
memory.savememory.searchsession.searchchat.tracesSchedule agents to run on a cron. Have them message you when something finishes or breaks — including through the WhatsApp and Telegram channel assistants, so a long job can reach you when you're nowhere near the machine.
cron.addcron.updatechannel.sendchannel.remindAttach another machine as a filesystem node and work across both from one chat. Scan your network, SSH into boxes, share or record your screen for visual context, and let the agent speak results out loud.
network.scanssh.runscreen.sharesurfaces.listvoice.speakSearch and fetch pages through whichever backend you configure — Brave, Perplexity, xAI Grok, Gemini, or Moonshot — and hand images straight to a vision model when the answer is in a screenshot.
web.searchweb.fetchimage.viewA real MCP SDK bridge pulls in any MCP server you already run, over HTTP or stdio. Skills package repeatable workflows, extensions add integrations, and tool discovery keeps the prompt small by loading schemas only when needed.
MCP bridgeskills.manageextensions.managetools.searchOpen, inspect, and resolve PRs from the workspace, including merge-conflict inspection and resolution. Every GitHub operation is bound to your encrypted token — never a shared gateway credential.
PR reviewconflict resolutionworktreessource controlDestructive and sensitive actions surface an approval card before they run, secrets are masked in tool output, and the gateway enforces ownership checks so one account can't reach another's projects or tokens.
approval cardssecret maskingownership checks
Being straight with you: Jait is young and it still breaks. It's a passion project shipped in the open — 650+ releases so far, and plenty of rough edges left. If something falls over, an issue genuinely helps more than a star. That's the deal.
One process on your machine. No cloud backend, no account with us, nothing to sign up for.
A single npm package, or the desktop app that bundles everything. Needs Node 22.5+ — that's the whole dependency list.
A Fastify server with a local SQLite database in ~/.jait. Your files, chats, and memories are rows on your own disk — you can delete the folder and it's gone.
The gateway serves a web UI to any browser on your network, plus desktop and mobile clients. The same session streams live to all of them over WebSocket.
Point it at a CLI provider you're already signed into, any OpenAI-compatible endpoint, or a fully local model. Jait supplies the tools; you choose the model.
Jait isn't a model and doesn't resell one. It's the workspace around it — the tools, approvals, previews, memory, and multi-device plumbing. That means the interesting question isn't "which model does it use", it's "what is the model allowed to touch". You answer that, per action.
The honest pitch, for people deciding whether this is worth twenty minutes.
Files, terminals, and browser sessions never leave the machine. The only thing that goes out is what the model you picked needs to see — and with Ollama or LM Studio, not even that.
Already paying for Codex, Claude Code, Gemini, Copilot, or OpenCode? Jait drives the CLI you're signed into. It adds a workspace, not another bill.
Running the test suite, opening the preview, and clicking through the page are all inside the loop. The agent can check its own work instead of handing you a guess.
Kick off a long refactor on your laptop and watch it from your phone. Same session, live. Queue a follow-up message and it drains when the current turn lands.
Around 250k lines of TypeScript with 300+ test files, in the open. If you don't like how something behaves, the code is right there and PRs are welcome.
Ships with a systemd unit. Run it on a homelab server or VPS, reach it from anywhere on your network, and update in place with jait update.
Four things people actually use it for.
"Add refresh tokens to the auth middleware and prove it works."
It edits the files, runs the type-checker and tests, opens the preview, and clicks through the login flow — then shows you the diff with the evidence attached.
"Where does billing state get mutated?"
The code-graph index traces call paths across the repo instead of grepping and hoping, and it can draw the architecture diagram it built along the way.
"Watch the deploy and tell me if it fails."
Installed as a systemd daemon on a homelab box, with a cron job driving the check and a WhatsApp message when something needs you.
"Take these three issues in parallel."
Manager mode fans the work out to background threads on separate worktrees, each with its own diff, so nothing steps on anything else.
The ones that decide whether you install it.
Not by Jait. The gateway runs on your machine and stores everything in a local SQLite database at ~/.jait. There's no Jait cloud, no account with us, and no telemetry service to opt out of. The one thing that leaves is whatever your chosen model provider needs to see — so if you run Ollama or LM Studio locally, nothing leaves at all.
Only if you want to use an API-based model. If you're already signed into a CLI provider — Codex, Claude Code, Gemini CLI, Copilot CLI, or OpenCode — Jait drives that directly and no key is needed. A fully local model works too.
Jait is MIT-licensed and free. You pay whatever your model provider charges, which may be nothing if you run locally or already have a subscription.
Node 22.5 or newer on Windows, macOS, or Linux, then npm install -g @jait/gateway. If you'd rather not touch npm, the desktop app bundles the gateway and UI in one window.
Yes — that's a first-class setup. jait daemon install registers a systemd user service that starts on boot, and the UI is then reachable from any browser on your network. You can also attach other machines as remote nodes and work across them from one chat.
You decide. Sensitive and destructive actions raise an approval card before they run, secrets are masked in tool output, and the agent loop has hard backstops against runaway rounds. Everything it does is visible as a tool card in the transcript.
Not yet, and it would be dishonest to say otherwise. It's early, it breaks, and it changes fast — 650+ releases and counting. It's very usable for day-to-day building if you're the kind of person who files a bug report when something misbehaves. If you need something battle-hardened, wait a few months and check back.
Run jait update, or use Settings → Check for updates → Apply in the UI. Gateways started with jait start or the systemd daemon restart themselves afterwards.
Install the gateway, start it, open your browser. Everything else happens in the UI.
Then open http://localhost:8000, create a local account, and pick a provider. Prefer a single window? The desktop app bundles the gateway and UI together — no npm required. Running it on a server? jait daemon install sets up a systemd service that starts on boot.
Jait is a passion project built in the open. The fastest way to make it good is to tell me what fell over.
If you install it and something misbehaves, open an issue — that genuinely helps more than a star. If you want to talk through an idea first, Discord is the quicker route. And if you'd rather just read the code before trusting it with a terminal, that's the most reasonable thing you could do; it's all there.