Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
fxterm-tabs (FxTerminalTabs): Windows terminal with vertical tabs and sleeping tabs, made for long Claude Code sessions
翻訳待ち
Loading the full README.
Read the full README ↗Full name FxTerminalTabs; we simply call it Tabs. The project and its files are named fxterm-tabs (organisation fxterm).
A terminal for Windows and macOS with vertical tabs, made for long sessions with AI coding agents such as Claude Code. Tabs sleep and wake like a browser's, every session can be found again in History, and several windows share one process. An idle window uses a few tens of MB.
Status: 0.1, early releases. Windows is the main platform; macOS (Apple silicon and Intel) is new in 0.1.4 and tested far less.
Each tab shows three lines: its title, its folder's name, and the full path. A number in the corner is the key that reaches it (Ctrl+1 or Alt+1 for the first). In the picture above, Backend, Frontend and Later are separators: labels that group the tabs under them. Add one with the "⎯ label" button under the list, or with "Insert separator above" in a tab's menu. Separators are never selected and are skipped by Ctrl+Tab and the number keys.
Click a label to fold its group. Each label also has a Zz button at its right end for the group's sleeping tabs: it shows how many there are ("Zz 3"); click it and the sleeping tabs are hidden, leaving the live ones, and the button turns solid and counts what is hidden ("Zz 3 hidden"), so nothing is ever silently gone. Click again to show them. Hidden tabs keep their places, so the order of your list does not change; the tab you are looking at always stays in view, and a tab you wake appears at once. Ctrl+Shift+Z does the same for the group of the shown tab, and the label's menu has it too. The choice is saved with the label.
Give a tab a colour from its menu (right-click, Colour) and the colour shows as a strip at its left edge. The active tab is a lighter row with white text. If you prefer the whole row and the frame round the terminal in the tab's colour, start Tabs with --tab-fill full.
Drag a tab to reorder it (or press Ctrl+Shift+PgUp / PgDn). A new tab opens just after the current one.
A launch from the command line can say where its tab goes: fxterm-tabs run --group "<label>" <command...>, fxterm-tabs open --group "<label>" [dir] and fxterm-tabs ctl new group=<label>. The new tab goes at the end of that group, so tabs launched one after another stay in launch order. A group that does not exist is made, as a label at the end of the window. Write --group right after run or open and before the command, so a command that itself starts with -- still works.
Without --group, the tab goes into the group of the tab the launch came from. Every tab's programs have FXTERM_TABS_TAB=<tab id> in their environment, and every process below the tab inherits it (claude, its shell tool, proj, cmd, the launcher), so this works however many levels down, even when a process in between has already ended. A launch from a tab in no group, or with an id that no tab has any more (Tabs was restarted), opens at the end of the window as before.
The window is the one of the starting tab when it is known; with --group, the window that already has a label of that name (the starting tab's window first). A folded group opens for the new tab, and a new tab is never hidden by a group's Zz.
fxterm-tabs ctl whoami, run inside a tab, answers that tab's id, window index, group (null when none) and folder.
Tabs listens on no TCP port. A second launch (open, run, or none at all, which only brings the window forward) and every ctl command reach the running window through one Unix-domain socket file, ~/fxterm/tabs/run/ctl.sock, which only this Windows user's processes can open; a socket file left by a crashed Tabs has nobody listening, so the launch then opens a window of its own.
Text on a ctl command line can be damaged before Tabs sees it: Java decodes its arguments with the ANSI code page (a bell 🔔 becomes ??), and PowerShell 5.1 removes the quotes inside an argument. Tabs reads the Windows command line itself, so non-ASCII text arrives intact; words after the first space of an unquoted name=value are kept as part of the value; replies print non-ASCII characters as JSON escapes, so they survive any console code page. For text with quotes, send the request on stdin, which nothing mangles: '{"cmd":"rename","id":"t1","title":"say \"hi\""}' | fxterm-tabs ctl - (from PowerShell 5.1 set $OutputEncoding = [Text.UTF8Encoding]::new($false) first). ctl --json '<request>' does the same from a shell that keeps quotes (bash, cmd).
When Tabs closes it saves every tab. When it starts again, every tab comes back asleep: no process runs, and the tab shows the text it had, so you can read or copy it. Press Enter or F2 (or click Restore) to wake it.
claude ... --resume <id>).A sleeping tab is dulled in the list and carries a grey moon; hover the moon and it turns into a yellow sun, and one click wakes the tab. To put a tab to sleep yourself, hover its RAM figure and click Zz, or choose Hibernate in its menu. When memory runs short, hidden Claude tabs that have been idle are put to sleep for you.
Closing a tab (its x, Ctrl+Shift+W, or its menu) closes a bare shell at once. When Claude Code or any other program is running in it, Tabs asks first: Close (F2), Hibernate (F3) or cancel (Esc).
This is the beginning of the README. Read the rest at the original. Read the full README ↗