heads up
Sessions are stored exactly as they came from the CLI — secrets printed during a session are not redacted. Treat every share as if you were posting the transcript publicly.
scribehub
A guided tour from a fresh account to your first shared session.
Scribehub is a self-hosted hub for the conversation transcripts your
local CLI coding assistants already produce. The TUI walks ~/.claude/projects and ~/.codex/sessions,
previews what it finds, and streams the JSONL transcripts to the API
where they are normalized into a single message schema. From the web
you can browse, search, and share individual sessions — either as a
public read-only link or as a grant to another Scribehub user.
An account scopes every upload to you and is the prerequisite for authenticating the TUI. Registration only needs an email, a username, and a password between 6 and 16 characters.
already registered? sign in
There are no pre-built binaries yet; build from source with the
pinned Rust toolchain in apps/tui/rust-toolchain.toml. rustup will
pick it up automatically the first time you build.
git clone https://github.com/shonenada/scribehub.git
cd scribehub
make tui-release
# binary lands at apps/tui/target/release/scribehub# move the binary somewhere on your PATH
install -m 0755 apps/tui/target/release/scribehub /usr/local/bin/scribehub
scribehub --versionRelease binaries will land here once the first tagged TUI release ships.
The TUI uses the OAuth device flow. After you run scribehub login it will print a short XXXX-XXXX code and a verification URL — enter the code in the web UI to
approve the device. The resulting API token is stored in your OS
keyring, never on disk in plain text.
# set --server-url, or export SCRIBEHUB_URL, before running
scribehub --server-url https://your-scribehub.example.com loginOpen /device in this browser, paste the user code, and approve. Confirm the token is active with:
scribehub statusRunning the bare scribehub command launches the interactive browser. Sessions are grouped by
source and working directory; use ↑/↓ or j/k to navigate, space to toggle
selection, a to toggle a
whole group, / to filter, and enter to start
the upload.
# launches the interactive browse + upload TUI
scribehubUploads are pre-flighted against the API by content hash, so the TUI never re-sends sessions you already have on the server.
Once at least one session is on the server, head to /sessions. You can filter by source (Claude / Codex / All) and search by title prefix; URL state is preserved so list views are shareable with yourself. Clicking a card opens the detail view with the normalized message timeline and per-tool collapsibles.
Tokens issued through the device flow live under /settings. You can name them, see when each was last used, and revoke any
one immediately. Revocation is enforced on the next request —
subsequent Bearer calls
with that token return 401.