How to Use tabsh: The Beginner’s Guide (First Install, the First Card, Providers, and the Board Arc)

CodexFuse Team · 2026-11-02T17:02:13.640Z · 14 min read min read

tabsh is the free MIT-licensed Rust daemon that runs your shells and AI coding agents in a browser tab with a kanban board. This beginner’s guide covers install, your first card, providers, board hooks, the Railway cloud branch, and the tabsh-vs-Warp answer.

Learning how to use tabsh takes about twenty minutes: one install command, one browser tab, and one wired-up coding agent — and every terminal you and your AI agents run stops disappearing into a stack of hidden windows. This beginner's guide walks you through the first install, your first agent card, how the kanban board works, which coding agents tabsh runs, and how to take it to the cloud with the Railway template. If you have ever lost track of a Claude Code session while three other terminals were open, this tabsh tutorial is the fix. If you searched "how to use tabsh" and found only the vendor's own pages, you are not alone — no independent walkthrough exists yet, so this one is written from the vendor's documentation as it stood on November 2, 2026. A GitHub primer never hurts for the parts that live on the command line, so keep the GitHub beginner guide handy.

What Is tabsh, Exactly?

tabsh is a small, free, MIT-licensed Rust daemon that turns your terminal shells and AI coding agents into cards on a kanban board — and shows that board in a browser tab. Instead of juggling ten terminal windows while Claude Code, Codex, Cursor CLI, or OpenCode run in half of them, you open one tab: each card is a real terminal (or a chat UI over one), grouped by status so you can see at a glance what's moving, what needs you, and what's done.

That "your shells live in a browser tab next to your work" detail is the whole mental model. tabsh does not move your agents to the cloud and does not invent a new kind of session — your shells keep running on your own machine, exactly where they are, and the browser is just the window you look through. Every section below follows from that one idea.

The project is young: its GitHub repository was created on October 3, 2026, version 1.8.1 shipped on October 31, 2026, and it launched on Product Hunt on October 25, 2026. The facts below are the vendor's own, fetched from tabsh.cc, its docs, the Railway template page, and the GitHub repo on November 2, 2026 — reported as reported, not as independently tested.

tabsh Tutorial: How Do You Install tabsh and Start Your First Card, Step by Step?

Here is the complete first-run flow, from empty terminal to a working agent card. Every step is verified against the vendor's current install instructions (tabsh.cc, fetched November 2, 2026).

  1. Install the daemon. Run curl -fsSL https://tabsh.cc/install.sh | sh, which installs a checksum-verified release binary into ~/.local/bin — or, on a Mac, brew install blaise1030/tap/tabsh. (Rust fans can also cargo install --git https://github.com/Blaise1030/tabsh.) macOS and Linux only — say it once: there is no Windows build.
  2. Start it. Run tabsh. The daemon starts, binds to 127.0.0.1:7681 on your own machine only, creates a secret token in ~/.tabsh/token, and opens the app in your browser already paired. If you ever lose the link, open http://127.0.0.1:7681 directly (Safari users: http://tabsh.localhost:7681).
  3. See the board. You land on the kanban board: columns for Backlog, In progress, Needs input, Completed, and a collapsed Archive. Empty for now — that is about to change.
  4. Start your first card. Open a new card as a terminal and type claude, codex, opencode, or any CLI that takes a prompt. The card becomes that agent's live terminal, running in whatever folder you started tabsh in.
  5. Wire the card to the board. Inside the agent, run tabsh setup. The command prints a guide the agent itself follows to install its hooks — your prompt moves the card to In progress, a permission prompt or turn end moves it to Needs input, finishing the task moves it to Completed. From then on the board stays honest without you touching it.
  6. Try moving a card by hand. Run tabsh status "In progress" --note "skimming the test suite" (v1.6.0+ also ships tabsh new and tabsh list). Notes show on the card — a small thing that makes a week-old card understandable.
  7. Glance at the board once more. The agent does its work; when it needs you, its card slides into Needs input and waits. That is the entire loop: start cards, read the board, answer when asked.

How Does the tabsh Kanban Board Actually Work?

The board is the point of tabsh. Every card is a live terminal session — a plain shell or an agent — and the board shows each card's current status at a glance: what's moving, what needs you, and what's done. You drag cards across columns, or let the agent's hooks do it for you; when nothing needs attention the board is calm, and when something does, you see exactly which card.

There are two views. The board is the kanban: Backlog, In progress, Needs input, Completed, Archive. The list is the same cards in one calm scroll, grouped by status — the vendor calls it the catch-up view, and it is the one you will actually read every morning. Press ⌘B to toggle. New users should live in the board for a day, then switch to the list once the habit of glancing settles in.

The status meanings are worth internalizing: Needs input is the only column that demands anything from you — it means an agent is blocked on a permission prompt or waiting for your next instruction. Everything else can wait. That single habit (scan for Needs input, ignore the rest) is the browser-tab-terminal workflow for Claude Code that people search for and never find written down.

Which Coding Agents Can You Run in tabsh?

Out of the box tabsh knows four providers — Claude Code, Codex, Cursor CLI, and OpenCode — and each is a per-card choice, so one card can be Claude Code refactoring your API while another is Codex writing tests. The vendor's rule is simpler than the list: a provider is a command, so "any CLI that takes a prompt" can be one. The vendor docs also show Gemini CLI in the agent-wiring path (the Railway template pre-installs it), so expect the list to keep growing.

ProviderHow it startsCard modeBest first use
Claude CodeType claude in a cardTUI or chat UIYour main pair-programmer; wire hooks via tabsh setup
CodexType codex in a cardTUI or chat UISecond agent on a different part of the codebase
Cursor CLIType the Cursor CLI command in a cardTUI or chat UICursor users who want the board without leaving the CLI
OpenCodeType opencode in a cardTUI or chat UIOpen-source agents on local or frontier models
Any prompt-taking CLIConfigure a startup commandTUI or chat UICustom wrappers, your own scripts, anything promptable

Each card runs either a real TUI (the agent's actual terminal interface) or a chat UI over the same session — same agent underneath, different way to talk to it. And a line worth repeating: no worktrees. Agents run in the folder you started, on your branch, which keeps things simple but means parallel cards on the same files can step on each other. If Claude Code is new to you, start with the Claude Code beginner guide before you put three of them on one repo.

How Do Agents Update Their Own Cards?

They do it through hooks — small events the agent fires as it works — and tabsh setup is what teaches each agent the wiring. Run the command inside an agent session and the agent installs hooks into its own config: your prompt moves its card to In progress, a permission prompt or the end of a turn moves it to Needs input, and finishing the task moves it to Completed. The vendor ships per-agent hook configs for the four main agents (~/.claude/settings.json, ~/.codex/config.toml, ~/.gemini/settings.json, and ~/.config/opencode/plugins/tabsh.ts), which is why the first card feels automatic and the second one does too.

You can also drive cards manually with tabsh status <status> [--note] — useful when you rename a task mid-flight or when a card's status drifted from reality. The design lesson is one sentence: the board is a mirror, not a tracker; the agents tell the truth about their state, and you only type when they get it wrong.

Why Is There No Windows Version of tabsh?

Because tabsh is a POSIX daemon built around Unix PTYs, and the vendor ships builds for macOS and Linux only. Say it once: if your machine runs Windows, tabsh is not your tool — the same limitation the vendor states plainly on its install page.

Windows developers who want the same browser-tab-terminal habit have two honest paths: run tabsh inside WSL2 (the vendor's scripts target Linux, so WSL2 is the natural home), or run it on a Linux box you already SSH into and pair the browser to that daemon. Either way, the daemon and the agents stay on the Unix side — the browser tab just renders them.

How Do You Reach tabsh from Another Machine?

You don't, by default — and that is a feature. The daemon listens on 127.0.0.1 only, so nothing on your network can reach it; your keystrokes never leave your machine, and only the browser tab carrying your secret token gets answers. The vendor's own docs shout the rule: never set HOST=0.0.0.0. Say it once — exposing tabsh to a network directly is the one genuinely dangerous thing you can do with this tool.

The sanctioned way across machines is Tailscale: optional, off by default, paired with a QR code, with "no relay of ours in between" — your devices talk to each other directly. The docs add one practical warning: pair the Tailscale IP, not the MagicDNS name, for a stable connection. Laptop open at a coffee shop, agents still running at home: that is the whole use case, and it costs you one Tailscale setup.

tabsh Railway Deploy: How Do You Run tabsh in the Cloud?

When the laptop sleeps, tabsh sleeps with it — the Railway template is the vendor-sanctioned answer for a cloud box that stays awake. It builds one service from the image ghcr.io/hmseeb/tabsh-railway (tabsh plus Caddy, Node 22, git, ripgrep, and sudo, from the hmseeb/tabsh-railway source) with one /data volume; your home persists at /data/home across redeploys, so agents and history survive restarts. Note the version skew as of November 2, 2026: the template ships tabsh v1.5.1 while the desktop release is v1.8.1 — cloud convenience costs you a few releases of freshness.

Caddy exists because tabsh only listens on 127.0.0.1: Caddy adds the password login (username admin, password from the generated TABSH_PASSWORD variable — "treat it like an SSH key"), answers Railway's health checks, and forwards to tabsh. Everything except /api/* and /ws sits behind that password, and the API itself is guarded by tabsh's 64-character pairing token, which you receive after login. Rotate the password with TABSH_PASSWORD; revoke every paired browser by deleting /data/home/.tabsh/token and redeploying.

The template is ready for agents the moment it deploys: Claude Code (claude), Codex (codex), Gemini CLI (gemini), and OpenCode (opencode) are pre-installed at latest on every deploy or restart and pre-wired to the board. You log them in with the ANTHROPIC_API_KEY, OPENAI_API_KEY, and GEMINI_API_KEY service variables — the same keys you would export locally. The template itself is free; Railway's compute is billed at Railway's own rates, so read the platform's pricing before you park a 24/7 box. And if the whole "a server I rent" idea is new, what is VPS hosting explains the mental model before you deploy anything.

tabsh vs Warp Terminal: What's the Difference?

Searching "tabsh vs warp terminal" finds no real comparison — what exists is Tabby-vs-Warp noise, and Tabby (tabby.sh) is a different terminal entirely. The honest answer: tabsh and Warp solve different halves of the same annoyance.

tabshWarp
What it isA Rust daemon + browser tab that manages shells and agent sessionsA GPU-accelerated terminal emulator you type in
Where agents liveIn cards on a kanban board, status-visibleIn your current terminal tab, wherever you started them
The "lost session" fixBoard shows every agent and what it needsWarp Drive blocks help you re-run; sessions still hide in tabs
Multi-agent workflowPer-card providers, one board for allOne window per window; you do the tracking
Cross-deviceBrowser tab pairs to the daemon (Tailscale for remote)Your terminal stays on the machine it's on
PriceFree, MIT-licensedFree tier with paid plans

Use both if you like: type in Warp, manage in tabsh. The comparison that actually matters is the disambiguation one — tabsh is not TabShab (a Chrome tab-manager extension), not TAPsh (astronomy software), not Tabby (a terminal app), and not tab washers (the dishwasher kind). The coined name disambiguates cleanly once you know what you're looking at, but the noise is real enough to deserve one paragraph.

What Do Beginners Get Wrong with tabsh?

Seven mistakes, all drawn from the vendor's own docs and troubleshooting notes:

MistakeWhy it hurtsDo this instead
Exposing the daemon to the networktabsh trusts localhost; 0.0.0.0 opens your shells to the LANKeep 127.0.0.1; reach it remotely via Tailscale or the Railway template
Skipping tabsh setup per agentHooks never install; cards go stale; the board liesRun it once inside every new agent you start — it takes seconds
Starting every card in the same folderNo worktrees: agents on the same files collideOne working area per agent, or let them queue via the board
Losing the pairing linkToken lives in the URL fragment; no link, no tabReopen http://127.0.0.1:7681; the token file is ~/.tabsh/token
Treating Needs input as "later"The agent is blocked until you answer — it does not make progress while ignoredScan that column first, always; it is the only urgent column
Expecting the Railway image to match desktopv1.5.1 vs v1.8.1 as of Nov 2, 2026 — newer flags may be missingCheck the release notes before relying on a fresh CLI flag in the cloud
Sharing the Railway login casuallyTABSH_PASSWORD is the only thing between the internet and your agents' shellsTreat it like an SSH key; rotate it if it ever travels

Most of these are one-sentence fixes — but the Railway-password one deserves repeating, because a cloud tabsh is a cloud shell. Developers who containerize their agent environments will find the habits transfer; the Docker beginner guide covers the isolation side, and the Git beginner guide keeps the branch discipline that no-worktree agents demand.

Sources

Facts in this guide were verified on November 2, 2026 against: the vendor site tabsh.cc (install commands, daemon behavior, board/list views, provider model, security notes, upgrade paths); tabsh.cc/docs (the vendor's getting-started walkthrough, hook wiring per agent, Tailscale setup); the tabsh GitHub repository (github.com/Blaise1030/tabsh — release list, v1.8.1, star counts, MIT license); the Railway deploy template (railway.com/deploy/tabsh — image, volume layout, Caddy + password model, pre-installed agents, version note); and the Product Hunt launch page (producthunt.com/posts/tabsh — published October 25, 2026; vote and comment counts were not visible on the fetched page and are not reported). SERP intent was checked the same day across "how to use tabsh", "tabsh tutorial", "tabsh railway deploy", and "tabsh vs warp terminal" — no interactive tool pages and no independent walkthroughs were found on any page 1.

Frequently Asked Questions

Is tabsh free?

Yes. The vendor's answer is plain: "Is it free? Yes. Open source under the MIT license." There is no paid tier on tabsh.cc — the only money involved is if you host it yourself (a VPS) or use the Railway template (Railway's compute billing).

How do I install tabsh on a Mac?

brew install blaise1030/tap/tabsh, then run tabsh. For Linux (or to pin a version), run curl -fsSL https://tabsh.cc/install.sh | sh; the script verifies checksums and drops the binary in ~/.local/bin. There is no Windows build.

Does tabsh replace my terminal?

No — it manages your terminals. You still type into real shells (or Warp, or whatever you use); tabsh puts each session in a browser tab and tracks it as a kanban card. Think window manager for agent sessions, not a new terminal.

How do I run Claude Code inside tabsh?

Start a card as a terminal, type claude, then run tabsh setup inside it. The hooks wire the card to the board: prompts move it to In progress, permission prompts to Needs input, completion to Completed.

Can I use tabsh on a remote server?

Yes, two ways: pair your browser over Tailscale (optional, QR-paired, no vendor relay), or deploy the Railway template — a cloud box with Caddy + password login and tabsh pre-wired. Never expose the daemon with HOST=0.0.0.0; the vendor explicitly warns against it.

Featured on Twelve Tools Hunt for Tools Featured on LaunchBuff Launch Llama Tools Launch your MCP