A terminal you can read.

Open a directory and Claude Code is running. Read the session as a conversation, or drop into the terminal it runs in: one keystroke apart, one session underneath. Beside them, a panel for context, cost and the tab that needs you.

Download for Windows
winget install iFrosty-tech.Anthra Coming soon

Windows 10 or 11 · needs Claude Code on your PATH, and git for tasks · free, MIT

  1. Tabs that tell you who needs you

    Every tab is a session of its own: its own shell, its own Claude Code, its own directory. A dot says whether Claude is working, has finished, or is waiting for a permission. Beside it, git: commits ahead and behind, and a mark while something is uncommitted.

    Ctrl+Shift+T new tab · windows, tabs and chats come back on launch

  2. Read it as a conversation

    New tabs open on the conversation, built from the transcript of the session: your prompt, the answer, and a card for every tool Claude ran, with the diff of every edit. What you write is typed into Claude Code, so a long prompt arrives whole.

    / commands and skills · @ a file of the project · ↑ earlier prompts

  3. The terminal, underneath

    PowerShell on ConPTY, not an emulation: Claude Code keeps running in it the way it always has. A permission, a question or a plan gets a card in the conversation; an interactive command like /model brings the terminal forward by itself, and it hands the tab back to the conversation when the prompt returns.

    Ctrl+Shift+J changes view · Ctrl+Shift+D puts two sessions side by side

  4. Context and cost, live

    Context against the auto-compact threshold and when the next compaction is due, session and daily cost, your Pro or Max plan limits, the files this tab touched and your recent chats, one click from resuming.

    Ctrl+Shift+B or the title-bar button hides it when you want the full width

  5. Look away. Anthra calls you back.

    A Windows toast and a taskbar badge when Claude asks for something or finishes a turn, only for tabs you are not looking at. The toast says what is asked, the command to run or the file to edit, and a click lands you on that tab.

    Throttled per tab, so a long session never turns into noise

Rebuilt in HTML from Anthra 0.11. Numbers are illustrative.

The same session, read two ways.

Claude Code keeps running in the terminal of that tab, the way it always has. The conversation is a second view on that same session, built from the transcript Anthra already reads: your prompt, the answer, and a card for every tool Claude ran. Ctrl+Shift+J, the switch in the header or the tab’s menu change the view, and nothing restarts — there is nothing else to restart.

A card per turn, and per tool
Your prompt, the answer in markdown, and what Claude did. Edit and Write carry the diff with its line numbers and counts, and a click on the path opens the diff viewer. Bash carries the command, how long it took, how it ended and the last lines it printed; reads, greps and globs gather into one row, and a tool that fails says why.
It fills while the turn runs
A card appears when its tool starts, with a stopwatch, and closes when the tool does. A line at the bottom counts the turn up and says that Esc interrupts. The view stays at the end unless you scroll up, and then one button brings you back.
A composer that types
Enter sends, Shift+Enter goes to a new line. / lists the commands and skills with their descriptions, @ the files of the project, ↑ and ↓ walk the prompts of this session, and a counter estimates the tokens of what you have written. What it sends is typed into Claude Code rather than pasted, so a long prompt arrives whole instead of as an attachment.
A card when Claude asks
The tab stays where it is and the request appears at the end of the turn. A permission shows what Claude wants to do: the command with its description, the diff an Edit or Write would make, the page to read. Answer with Allow, an always allow that Claude Code itself suggests, Deny, or Deny and stop Claude. A question takes one answer, several, or Other; a plan arrives in markdown, to approve with or without accepting edits, or to send back to planning with an optional note on what to change. 1–9 pick, Enter takes the first choice, Esc declines, and Shift+Tab moves there from a draft in the composer.
The terminal, when it is needed
An interactive command like /model, or a request without a card: the tab moves to the terminal by itself and takes the keyboard with it. When the prompt comes back it returns to the conversation — if it went there on its own; a terminal you chose stays. A line in the conversation says what was asked and whether it was answered on the terminal or is still waiting there. While a card waits, Claude Code’s own dialog stays open in the terminal and the first answer from either side counts; Answer in the terminal takes you there and back. Anthra never answers for you: a closed tab, an error or a request it can’t read leaves the choice to the terminal.

Resuming a chat shows the last 30 turns, with load earlier turns at the top, and a long session opens without keeping you waiting. Compactions, /clear and every change of model or permission mode are separators in the flow. New tabs open on the conversation; Preferences → Conversation changes that, and its Show the terminal when Claude Code asks something decides whether the terminal comes forward on its own. Preferences → Appearance hides the frame around the session, both halves of it: the header above the view and the shortcut bar under it.

Cards need Claude Code 2.1.278 or later. With an older one, or with Answer Claude Code from the conversation turned off in Preferences → Conversation, where it is on by default, every request is answered in the terminal.

A panel of your own.

Drag its edge out to 640 px or half the window, and the charts show more. Keep the sections you read at the top, fold the rest to one line that still shows its value, hide what you never look at. It comes back the way you left it.

Context over time
The context after every turn, the auto-compact threshold and each compaction, with a forecast of the next one: in ~4 turns.
Plan limits
For Pro and Max: the five-hour session and the week, with when each resets, as /usage shows them.
Budget and models
Today’s cost against your daily alert, the pace of the last hour, cost by model and what the prompt cache saved you.

Turn rhythm and Session tools start hidden. Preferences → Panel lists every section to reorder, show or hide, and Ctrl+Shift+B or the title-bar button hides the whole panel.

Next compactionin ~4 turns
Session (5 h)33%
resets 16:40
Week22%
resets Mon 09:00
Today of $10/day$4.12
Pace, last hour$1.10/h
Alert at this pace17:40
Opus$3.40
Sonnet$0.61
Haiku$0.11
Cache saved today$2.35

Try it: drag the edge, click a title to fold it, Alt+↑ or ↓ on a title to move it.

Two Claudes, one repository.

Ctrl+Shift+N starts a task: a tab on a new git worktree, with a folder and a branch of its own. One session refactors while another fixes a bug, and neither writes over the other’s files. The tab you started from keeps its branch and its changes.

  1. anthra-site main keeps its branch and its changes
  2. login-migration anthra/login-migration ↑4 Merge
  3. flaky-test anthra/flaky-test ↑1 Pull request
  4. cache-spike anthra/cache-spike ↑2 Discard
Merge
Into whichever folder has the base checked out: a fast-forward when it can, a merge commit otherwise. It refuses while anything is uncommitted, and a conflict undoes itself.
Pull request
Pushes the branch and opens the pull request through the GitHub CLI. Keep the folder leaves the task open for the review.
Discard
Only after a confirmation that counts the commits and changes you are about to throw away.

Git on every tab. The branch of a task, commits ahead of and behind the base, and a mark while something is uncommitted. The panel lists the files Claude touched with their + and − counts; a click opens the diff since the tab started, commits included.

A task lives in <repository>.worktrees\<name> on the branch anthra/<name> by default; Preferences → Tasks sets the prefix. Tasks need git on your PATH; pull requests also need the GitHub CLI, logged in.

Every chat, a shortcut away.

Anthra indexes every chat in every project in the background, so last week’s session is as close as the one in front of you, whether its tab is open or long closed.

Timeline of a session Ctrl+Shift+H

One row per turn: when it started, the prompt, how long it took, what it cost, the tools it used and the files it wrote. Open a row for the whole prompt, every tool call and the diff of each file. Closed chats open too, with Resume.

Search every chat Ctrl+Shift+F

Prompts, answers, titles and tool calls, as you type. "quotes" match a phrase and -word leaves it out; filter by project, period and kind. Enter opens the timeline at that turn, Ctrl+Enter resumes the chat.

Cost analysis Ctrl+Shift+K

What you spent over 7, 30 or 90 days, this month or ever, by project, by model or by week. Export to CSV or JSON; the CSV follows your Windows regional separators, so Excel opens it in columns.

Updates itself, then gets out of the way.

The installed build downloads new versions in the background and installs them when you quit. Your windows, tabs and chats reopen afterwards, with a What’s new window listing what changed.

  1. Checks after launchand again every 6 hours
  2. Downloads quietlyno prompt while you work
  3. Installsor now, with Restart to update in the tab bar
  4. Everything is backwindows, tabs, chats and What’s new

Portable and Scoop installs show a button instead. Preferences → Updates turns the check off.

Install in one line.

Per-user, no admin rights. Pick the channel you already use; every one of them keeps Anthra up to date.

Anthra is not code-signed yet, so SmartScreen warns once about the installer download. Scoop and Anthra’s own updates don’t go through SmartScreen, and neither will winget once Anthra is there.

Needs Claude Code on your PATH. Tasks also need git on your PATH, and pull requests the GitHub CLI, logged in.

PS>scoop bucket add anthra https://github.com/iFrosty-tech/anthra
PS>scoop install anthra

Update with scoop update anthra.

Runs on your machine. No telemetry, no analytics, no account.

It writes to your repositories only when you start or close a task, and goes online on its own only to check for updates. An always allow you pick on a card is saved by Claude Code, not Anthra, in its own settings, which can be the repository’s .claude folder.

~/.claude
Claude Code’s transcripts, for context, tokens and cost. Your Claude Code settings files are read, never written by Anthra; an always allow from a card is written by Claude Code, as from its own dialog.
127.0.0.1
where the status line script and the hooks that ship with Anthra send what Claude Code hands them, in Anthra’s own tabs only. The same hooks carry your answer on a card back to Claude Code. Loopback, never the network. Your own status line still runs.
%APPDATA%\Anthra
its own state, and a history index cache with the text of prompts, answers and tool calls, never tool output. Preferences → History switches it off and deletes it.
/
the name and description of the commands and skills the composer lists: Claude Code’s own, the project’s, yours and those of your enabled plugins. Read to be listed, never run.
@
the files of the project, as git ls-files lists them, so the composer can complete a path.
git
the status of each tab’s directory. With tasks, and only on your action, worktrees, branches and merges in your repositories.
gh
runs only when you ask for a pull request: it pushes the task’s branch and opens the pull request on GitHub.
github.com
the one request Anthra makes on its own: the update check, sending nothing beyond what any download does

Straight answers.

Does it change my Claude Code setup?

Not your files. Anthra reads your Claude Code settings files and never writes them. In its own tabs it starts claude with a --settings file that adds a status line and a few hooks, so claude in any other terminal is untouched. When you pick an always allow on a card, Claude Code saves the rule itself, just as it would from its own dialog.

The status line script ships with Anthra. It sends what Claude Code hands it to 127.0.0.1 and nowhere else, then runs your own status line as before. That is where Plan limits come from: on by default, off in Preferences → Panel.

Is the conversation a second Claude?

No. There is one session per tab, and it is Claude Code running in that tab’s terminal. The conversation is drawn from the transcript that session writes, so both views show the same turns, the same tools and the same cost.

What you send from the composer is typed into that terminal as if you had typed it there, which is why Esc, Shift+Tab and Ctrl+C reach Claude Code as the keys they are. A permission, a question or a plan is answered on a card in the conversation, and Anthra’s hooks hand your answer back to that same Claude Code; a request without a card is answered in the terminal.

Why does SmartScreen warn me?

Anthra is not code-signed yet, and SmartScreen warns about unsigned downloads it has not seen often. To check a download, compare its SHA-512 with the sha512 in that release’s latest.yml:

[Convert]::ToBase64String([Security.Cryptography.SHA512]::Create().ComputeHash([IO.File]::ReadAllBytes("$PWD\Anthra-Setup-<version>-x64.exe")))
Are the costs what I will be billed?

No, they are estimates from a local rate table. On a subscription they are the API-equivalent cost of what you used.

Since 0.9 they match what Claude Code’s /cost reports, a little under it because a few calls never reach the transcript. Earlier versions counted some responses more than once and showed about 2.4 times too much, so expect lower numbers than you remember.

How do I remove Anthra completely?

Uninstall it from Windows Settings (or scoop uninstall anthra), then delete %APPDATA%\Anthra.

Closing a task removes its folder unless you choose to keep it. What can stay in your repositories are the folders of tasks still open or kept, in <repository>.worktrees\<name>, and the task branches, anthra/* by default, since only a discard deletes one. Remove them with git worktree remove and git branch -D.

An always allow picked on a card is a rule in Claude Code’s settings, in the repository’s .claude folder or in ~/.claude, and it stays after Anthra is gone.

I updated from 0.6 and nothing happened.

Versions 0.6 and earlier have no updater, so that one update has to be done by hand. From 0.7 on, Anthra updates itself.

Open a directory.
Claude is already there.