Skip to main content

Bit, tabmancer's robot, beside a small dashboard of coding-agent sessions (one waits for you, one works, one was cut off, one stopped at a usage limit, one is done) and a chart of the tokens they used over 14 days

tests PyPI Python 3.10+ Apache 2.0 licence

tabmancer

Many Claude Code sessions in many terminals: one screen for all of them, and none lost. tabmancer is a dashboard for your coding-agent sessions, in the terminal. See every session from every project, which ones are working, which one waits for you and how full each one's context is, and go to any of them in a key. Close them when you have to, even halfway through a task: they come back where they left off, each in its own tab and folder, and the ones cut off mid-reply carry on by themselves. Claude Code first, Codex and Antigravity if you use them.

I run Claude Code in several terminals at once, and keeping track of them got hard: which one is working, which one is waiting for me. And I often had to close them before Claude had finished. tabmancer is what I built for both: one screen to see and manage them all, and every session back where it left off, all of them at once. Sinan Tüfekci

tabmancer in use: a cut-off session, a card filter, a team, the team view and the keys

Try it

uvx tabmancer --demo         # made-up sessions: nothing of yours is read or changed

Every key works in the demo, but nothing opens and no model is asked. Then install it:

uv tool install tabmancer    # or: pipx install tabmancer
tabmancer                    # the dashboard

It needs Python 3.10+ and Claude Code's claude on your PATH. Upgrade it with uv tool upgrade tabmancer (or pipx upgrade tabmancer): the dashboard says when a newer version is out (updating). ? lists every key and runs the one you pick; the footer shows the common ones and what they do on the row you are on. On Windows, tabmancer shortcut adds a desktop shortcut and tabmancer startup on opens the picker at login when sessions were left open.

What it does

The dashboard: live counters, projects, recent sessions, how each one ended, and a preview with an AI summary

  • Shows what each one is doing. Every open session, whichever terminal it is in: working, waiting for you or needing you, the model and effort it runs on, and how full its context is; your plan limits in the top bar. j goes to the next one waiting for you, and Enter on an open one goes to its tab.
  • Brings your sessions back. Closed before they were done, by you, a reboot or a crash, they say how they ended (cut off, unanswered, at a usage limit, done) and wait under TO CONTINUE. Enter opens them again where they left off, each in its own tab and folder, and the ones cut off mid-task are told to carry on. After a reboot the ones that were open start out ticked: one Enter brings them all back. Resume, fork or start fresh, per session.
  • Gets past a usage limit. Sessions stopped at a limit say when it lifts; c continues them all then, or right away once you have signed in with another account.
  • Runs teams. Several sessions on one project with an orchestrator, or as peers on related topics side by side, talking through Claude Code's own messaging between sessions: one row in the list, and a view of who tells whom what. Each member can run on its own model and effort.
  • Hands crowded sessions over. h moves the work to a fresh session, with a full handover as its first message. A whole team too: its lead writes the handover and the line-up for the rest of the work, you change what you like, and the team starts again, fresh.
  • Goes easy on your plan's limit. Every reply reads the whole conversation again, so a long session is where most of a limit goes. The sessions tabmancer starts keep to a context cap (300k unless you pick another), and in n a quick router suggests the model, effort and cap for your first message: the cheapest that will still do the work well, yours to take with Ctrl+R or leave. The context cap.
  • Counts. Tokens, when you work, tools and files, plan limits with a forecast, and a written report of the week to share.
  • Wraps your week up. Claude Code Wrapped: your week as a card to post on X, Bluesky, Threads or your Instagram story.
  • Finds. / finds a session by anything you or Claude said in it.
  • Codex and Antigravity too, if you use them.

Everything it does, and the details: using it (what each status means, every key, writing to a session, background sessions, workspaces) · teams · handing over · stats and reports · setup and commands · how it works

Claude Code Wrapped

A Claude Code Wrapped card from the demo: I'm the Comeback Kid, 4 sessions brought back; 55.8M tokens, 14h 14m at work over 7 days, 13 sessions, 4 side by side, Claude wrote about 8 novels; Bit in confetti and the tokens of each day The same week as a story card: every number, the models used, the longest session, the top tool and the hours of the day the work was done in

Your week with Claude Code as a card worth posting, drawn in pixels like Bit. On Fridays Bit says it is ready, and W shows it any day: who the week made you (the Conductor, the Night Owl, the Marathoner, the Comeback Kid and more, each with the number behind it), the tokens against last week, the time at work, the sessions side by side, what Claude wrote in novels' worth, the files edited, the models, the longest session and the hours you worked. f turns it into a story card. p shares it: X, Bluesky or Threads open a new post with the words already written and the card on your clipboard to paste in; for Instagram the story card is saved and its folder opened, to send to your phone. Nothing is posted until you post it, and the card holds counts only: no project names, nothing said in a session.

tabmancer wrapped --share x    # or bluesky, threads, instagram; --story saves the tall card

Keys

Key Action
Enter open the ticked sessions, or the highlighted one, each in its own tab
Space tick a session
m how it opens: resume → auto-continue → fork → new
p write a prompt to a session (an open one: go to its tab)
j the next open session waiting for you
/ find by project, title, or anything said in a session
n fresh sessions in several projects at once; Ctrl+R takes the router's model, effort and cap
T teams
h hand a session over to a fresh one; on a team, the whole team (twice)
c continue the sessions stopped at a usage limit
u stats
W Claude Code Wrapped: your week as a card; p shares it, f makes it a story
? every key, explained; Enter runs the one picked

All the keys.

Where it runs

Built and used every day on Windows 11 with Windows Terminal: tabs, going to a session's tab, start at login, desktop notifications and a desktop shortcut. On Linux, tabs open in tmux (tried for real), WezTerm, kitty, GNOME Terminal and Konsole; on macOS in iTerm2 and Terminal.app, which have not been tried on a real Mac yet. In any other terminal, tabmancer prints the commands to run. What has been tried where. Reports are welcome.

Claude Code's formats are its own and can change between releases: after an update, tabmancer doctor checks that everything tabmancer relies on still works.

Privacy

tabmancer runs on your machine and talks to no server of its own. It reads the transcripts the agents already keep (~/.claude, ~/.codex, ~/.gemini) and asks the claude CLI which sessions are open and how full your plan limits are (/usage, a local command). It reads which account you are signed in with (its email and plan) from ~/.claude.json and Codex's auth.json, to show it in the top bar, and remembers the emails of the Claude accounts it has seen, in its own folder, to offer them when you switch (A), with the browser profile each one's sign-in page opens in: for that it reads your browsers' list of profiles (each one's name and the Google account it syncs with), never their cookies or passwords; and the ids of the sessions it opened again, to count them on your week's card (W). Once a day it asks PyPI which version of tabmancer is the latest, to tell you of a newer one (tabmancer updates off stops it). A model is called only when you ask for one, through your own CLI and plan: an AI summary (s), a handover (h; a team's lead writes its team's, h in the team view), a report (r in the stats), a team's line-up (Ctrl+R in the new-team form, which sends the goal, the project's file names and its README's start, and the goal and members' parts of a team at work in that project). One call is made without asking: in n, once you stop typing a first message, the router sends that message and the ticked folders' names to Haiku to suggest a model, effort and context cap ("router": false in its config.json stops it; Ctrl+R then asks). It types into an open session only when you have it continue the ones stopped at a usage limit (c), or send a team at work's lead the message Ctrl+R wrote for it (Ctrl+S). Sharing your week's card (p on it) opens the platform's own page for a new post in your browser, with the words written in: you post it, or not. Nothing is sent anywhere else, and there is no telemetry.

Trademarks

tabmancer is an independent project, not made by, affiliated with or endorsed by Anthropic, OpenAI or Google. Claude Code, Codex and Antigravity are their owners' trademarks; they are named here only to say what tabmancer works with.

License

The code is licensed under the Apache License 2.0: keep the NOTICE with it and credit "tabmancer by Sinan Tüfekci". Bit, the robot, is licensed under CC BY 4.0: wherever you use it, credit "Bit by Sinan Tüfekci". Not affiliated with Anthropic.

Metadata

Release files for tabmancer 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tabmancer 0.1.6
File Size Uploaded Provenance Actions
tabmancer-0.1.6.tar.gz 515.0 kB Without provenance Details for tabmancer-0.1.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tabmancer 0.1.6
File Interpreter ABI Platform Actions
tabmancer-0.1.6-py3-none-any.whl Python 3 none any Details for tabmancer-0.1.6-py3-none-any.whl

Total release size: 873.4 kB

Release files / tabmancer-0.1.6.tar.gz

Download URL tabmancer-0.1.6.tar.gz
Size 515.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b401cfd950684226fe4f5fc8482904d07972f6a05ec8aeff810479912b4f8b72
BLAKE2b-256 checksum
How to use checksums
b750e352f50fea88e6d22f5eea8228b9ed1741cadf33410c389215f87cce6a74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / tabmancer-0.1.6-py3-none-any.whl

Download URL tabmancer-0.1.6-py3-none-any.whl
Size 358.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2ee06e1ca15202b846aa48da5b1408a65294d22c22f212766d173a569b85d0e
BLAKE2b-256 checksum
How to use checksums
57de501e48ac5fc926ecaf17cd7b9a627c140465838c843b40aa8a037d2ae498
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for tabmancer 0.1.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page