Metadata-Version: 2.5
Name: tabmancer
Version: 0.1.0
Summary: A terminal dashboard for coding-agent sessions (Claude Code, Codex, Antigravity): see what they are doing, run them as teams, call them back after a reboot
Project-URL: Homepage, https://github.com/SinanTufekci/tabmancer
Project-URL: Issues, https://github.com/SinanTufekci/tabmancer/issues
Project-URL: Changelog, https://github.com/SinanTufekci/tabmancer/blob/main/CHANGELOG.md
Author: Sinan Tüfekci
License-Expression: Apache-2.0 AND CC-BY-4.0
License-File: LICENSE
License-File: LICENSE-BIT
License-File: NOTICE
Keywords: claude-code,codex,coding-agents,dashboard,resume,sessions,textual,tui,windows-terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: send2trash>=1.8
Requires-Dist: textual>=8.0
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/SinanTufekci/tabmancer/main/docs/banner.webp" alt="Coding agents at work in their tabs, Windows restarts and they are gone, Bit calls them back, and the tabmancer dashboard shows them all" width="100%">
</p>

<p align="center">
  <a href="https://github.com/SinanTufekci/tabmancer/actions/workflows/tests.yml"><img src="https://github.com/SinanTufekci/tabmancer/actions/workflows/tests.yml/badge.svg" alt="tests"></a>
  <a href="https://pypi.org/project/tabmancer/"><img src="https://img.shields.io/pypi/v/tabmancer" alt="PyPI"></a>
  <img src="https://img.shields.io/pypi/pyversions/tabmancer" alt="Python 3.10+">
  <a href="https://github.com/SinanTufekci/tabmancer/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="Apache 2.0 licence"></a>
</p>

# tabmancer

A dashboard for your coding-agent sessions, in the terminal: Claude Code first, Codex and
Antigravity if you use them. See every recent session from every project and what the open
ones are doing right now, which one waits for you, and how full each one's context is. Run a
team of sessions that talk to each other. And after a reboot or a crash, call back the
sessions you had open, each in its own tab and folder; the ones cut off mid-reply carry on
by themselves.

<p align="center">
  <img src="https://raw.githubusercontent.com/SinanTufekci/tabmancer/main/docs/demo.webp" alt="tabmancer in use: a cut-off session, a card filter, a team, the team view and the keys" width="100%">
</p>

## Try it

```sh
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:

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

It needs Python 3.10+ and Claude Code's `claude` on your PATH. `?` 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](https://raw.githubusercontent.com/SinanTufekci/tabmancer/main/docs/picker.png)

- **Calls your sessions back.** After a reboot or a crash, the sessions that were open start
  out ticked: `Enter` opens each in its own tab and folder, and the ones cut off mid-task are
  told to carry on. Resume, fork or start fresh, per session.
- **Shows what each one is doing.** Working, waiting for you or needing you; how each closed
  one ended (done, stopped, cut off, unanswered, at a usage limit); how full every context
  is; your plan limits in the top bar. `j` goes to the next one waiting for you.
- **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, talking through Claude
  Code's own messaging between sessions: one row in the list, and a view of who tells whom what.
- **Hands crowded sessions over.** `h` moves the work to a fresh session, with a full handover
  as its first message.
- **Counts.** Tokens, when you work, tools and files, plan limits with a forecast, and a
  written report of the week to share.
- **Finds.** `/` finds a session by anything you or Claude said in it.
- **Codex and Antigravity too**, if you use them.

[Everything it does](https://github.com/SinanTufekci/tabmancer/blob/main/docs/features.md), and the details: [using it](https://github.com/SinanTufekci/tabmancer/blob/main/docs/using.md) (what each
status means, every key, writing to a session, background sessions, workspaces) ·
[teams](https://github.com/SinanTufekci/tabmancer/blob/main/docs/teams.md) · [handing over](https://github.com/SinanTufekci/tabmancer/blob/main/docs/handover.md) · [stats and reports](https://github.com/SinanTufekci/tabmancer/blob/main/docs/stats.md) ·
[setup and commands](https://github.com/SinanTufekci/tabmancer/blob/main/docs/setup.md) · [how it works](https://github.com/SinanTufekci/tabmancer/blob/main/docs/how-it-works.md)

## 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 |
| `T` | teams |
| `h` | hand a session over to a fresh one |
| `c` | continue the sessions stopped at a usage limit |
| `u` | stats |
| `?` | every key, explained; `Enter` runs the one picked |

[All the keys](https://github.com/SinanTufekci/tabmancer/blob/main/docs/using.md#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](https://github.com/SinanTufekci/tabmancer/blob/main/docs/how-it-works.md#status).
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. A model
is called only when you ask for one, through your own CLI
and plan: an AI summary (`s`), a handover (`h`), a report (`r` in the stats). It types into
an open session only when you have it continue the ones stopped at a usage limit (`c`).
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](https://github.com/SinanTufekci/tabmancer/blob/main/LICENSE): keep the [NOTICE](NOTICE) with it and credit "tabmancer by Sinan Tüfekci". Bit, the robot, is licensed under [CC BY 4.0](https://github.com/SinanTufekci/tabmancer/blob/main/LICENSE-BIT): wherever you use it, credit "Bit by Sinan Tüfekci". Not affiliated with Anthropic.
