cd /news/developer-tools/show-hn-wallfacer-a-terminal-session… Β· home β€Ί topics β€Ί developer-tools β€Ί article
[ARTICLE Β· art-78594] src=github.com β†— pub= topic=developer-tools verified=true sentiment=Β· neutral

Show HN: Wallfacer: A terminal session manager for Claude Code

Developer Pradipta released Wallfacer, a terminal session manager for Claude Code that indexes all AI coding sessions stored as untitled JSONL files under ~/.claude/projects/ into a local SQLite database, allowing users to name, tag, group, search, resume, or delete sessions from a TUI or CLI. The tool is read-only on Claude's files, supports safe deletes via trash, and is available as a single Go binary for macOS and Linux via go install or pre-built releases.

read5 min views1 publishedJul 29, 2026
Show HN: Wallfacer: A terminal session manager for Claude Code
Image: source
β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘ β–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β•šβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘
 β•šβ•β•β•β•šβ•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•     β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•

A terminal session manager for Claude Code β€” see every AI coding session you've ever started, then name, tag, group, search, resume, or delete them, from a full-screen browser or straight from the command line.

Claude Code stores every conversation as an untitled JSONL file under ~/.claude/projects/

, keyed by whatever directory you were in. After a few weeks you have dozens of transcripts you can't tell apart and no way to find the one you need.

wallfacer indexes them all β€” read-only, it never touches Claude's files β€” and keeps your titles, tags, and projects in its own local SQLite database.

One view of everythingβ€” every session, from every directory, sorted by recency** Organize**β€” rename sessions, tag them, group them into projects** Search**β€” across titles, first prompts, directories, projects, and tags** Launch & resume**β€” start new sessions or jump back into old ones, from anywhere** Safe deletes**β€”rm

moves to trash; only--purge

is permanentTUI and CLIβ€” a full-screen browser for humans, subcommands +--json

for scriptsExtensibleβ€” agents are pluggable adapters; Codex, opencode, Cursor CLI, and kiro-cli are on the roadmap

go install github.com/pradipta/wallfacer@latest

Requires Go 1.22+. Pure Go, no CGO β€” macOS and Linux. Pre-built binaries are on the releases page; building from source is covered in the development guide.

wallfacer is one binary with two front ends, and which one you get depends on whether you pass a subcommand:

You type You get
wallfacer
The TUI β€” a full-screen, interactive session browser. Start here.
wallfacer <command>
The CLI β€” one-shot subcommands for scripts and muscle memory.

They are not separate tools and there is nothing to switch between: both read and write the same SQLite index, so a session you tag in the browser is immediately findable by wallfacer list --tag

, and vice versa. Anything the TUI can do, a subcommand can do too.

(If stdout isn't a terminal β€” wallfacer | less

, or inside a script β€” the bare command prints help instead of opening the browser.)

Open the browser and work from there:

wallfacer

Or drive it from the shell:

wallfacer new ~/work/api --title "Fix flaky auth tests"
wallfacer resume "fix flaky auth tests"    # by title or ID prefix
wallfacer search auth
wallfacer list --project api --json        # for scripts

Bare wallfacer

opens a full-screen session browser: a list on the left, and a detail pane on the right showing everything wallfacer show

prints for whatever is highlighted.

Every row shows its project, tags, directory, age and agent β€” the same metadata wallfacer list

prints. Below ~100 columns the detail pane steps aside and the list takes the full width.

Key Action
↑/↓ j/k
move
/
fuzzy filter across titles, projects, dirs and tags
P / T
cycle the project / tag filter (wraps back to unfiltered)
x
clear the project and tag filters
tab
show or hide the detail pane
enter
resume β€” the terminal is handed to the agent; the browser returns when you exit
n
new session (prompts for directory, then title, project, tags)
r / t / p
rename / edit tags / set project
d
delete β†’ trash, with confirmation
? / q
help / quit

Every subcommand is one-shot: it runs, prints, and exits. Same index as the browser.

Command What it does
wallfacer
(no subcommand) Open the interactive browser
wallfacer new [dir] [--title T] [--project P] [--tag t]
Start a new session in a directory
wallfacer resume <ref>
Reopen a session in its original directory
wallfacer list [--project P] [--tag T] [--json]
List sessions, newest first
wallfacer search <query>
Search titles, prompts, dirs, projects, tags
wallfacer show <ref>
Full details of one session
wallfacer rename <ref> <title>
Rename a session
`wallfacer tag add rm <ref> <tag>…`
Add or remove tags
`wallfacer project set clear <ref>`
Group sessions into a project
wallfacer rm <ref> [--purge] [-f]
Trash a session (--purge deletes permanently)
wallfacer sync
Rescan disk (runs automatically before every command)

<ref>

is an ID prefix (resume 5f2

) or an exact title (resume "smoke test"

) β€” ambiguous references list the candidates instead of guessing. Sessions started outside wallfacer are picked up automatically; there's no import step.

wallfacer scans ~/.claude/projects/

, reading just the head of each session file for its working directory, timestamps, and first prompt (the automatic title). Your metadata lives in SQLite at ~/.local/share/wallfacer/

β€” delete it and you lose only the overlay, never a conversation. Sync is incremental, so it stays fast with hundreds of sessions.

Other agents plug in through a small adapter interface β€” see docs/adding-an-agent.md.

  • Adapters for more agents: Codex,opencode, Cursor CLI, kiro-cli - Full-text search across session content(SQLite FTS5) - wallfacer restore

(un-trash from the CLI) - Export a session transcript to Markdown

  • Stats (sessions per project/week, disk usage)
  • Desktop app β€” sessions in a sidebar, embedded terminal, multiple tabs (Wails + xterm.js on top of the same Go internals)

See the development guide for building, testing, and releasing. Contributions welcome β€” especially new agent adapters.

The name is borrowed from the Wallfacers of Liu Cixin's The Dark Forest β€” people entrusted with plans too sprawling for anyone else to follow.

── more in #developer-tools 4 stories Β· sorted by recency
── more on @pradipta 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/show-hn-wallfacer-a-…] indexed:0 read:5min 2026-07-29 Β· β€”