scribehub

Getting started

A guided tour from a fresh account to your first shared session.

1. What is Scribehub

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.

2. Create an account

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

3. Install the TUI

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.

build
git clone https://github.com/shonenada/scribehub.git
cd scribehub
make tui-release
# binary lands at apps/tui/target/release/scribehub
install
# move the binary somewhere on your PATH
install -m 0755 apps/tui/target/release/scribehub /usr/local/bin/scribehub
scribehub --version

Release binaries will land here once the first tagged TUI release ships.

4. Authenticate the TUI

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.

login
# set --server-url, or export SCRIBEHUB_URL, before running
scribehub --server-url https://your-scribehub.example.com login

Open /device in this browser, paste the user code, and approve. Confirm the token is active with:

status
scribehub status

5. Discover and upload sessions

Running 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.

run
# launches the interactive browse + upload TUI
scribehub

Uploads are pre-flighted against the API by content hash, so the TUI never re-sends sessions you already have on the server.

6. Browse uploads

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.

7. Share sessions

Each session detail page exposes a share dialog with two tabs:

  • Link — generate a public, revocable URL. The raw token is shown exactly once at creation time; lose it and you must rotate the link.
  • User — search for another Scribehub user by username and grant them read access. They will see the session under /shared-with-me.

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.

8. Manage API tokens

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.