portal — teleport into your Claude Code sessions
◐ theme
the picker — type portal, search as you type
128 sessions · 1 collapsed (^E) · type to search
❯▏<br>128/128semantic
▸ refactor-auth-middleware
~/code/acme/api
#jwt #tokens #middleware
── arc ─────────────
↗ research jwt refresh token rotation
landed edited src/auth/middleware.ts
── touched ─────────
middleware.ts · tokens.ts · session.ts
── activity ────────
2d · 12MB · ~4k msgs · ~900 tools
▁▃▅█▆▃▅▆██▅▃▅▆█▆▅▃▁▃▅▆▃▁
main · a1b2c3d8
type to re-rank · ↵ jump · ^N new here · ^Y copy · ^E expand ⧉ · ^/ preview
commands — jump, and move history around
portal go — teleport by description
❯ portal go "the webhook retry fix"<br>◇ teleport ~/code/acme/billing (0.94)<br>▸ resume f4e9b2c1 — fix-webhook-retry-loop
portal pull — bring history here
❯ cd ~/code/acme/gateway<br>❯ portal pull "auth refactor"<br>◇ pulled refactor-auth-middleware → here<br>▸ resuming forked — original untouched
portal mv — move a folder + its history
❯ portal mv ~/code/acme/api ~/code/platform/api<br>◇ moved folder → ~/code/platform/api<br>✓ session a1b2c3d8 migrated<br>◇ 3 session(s) now live at the new path
portal status — what could I lose right now?
❯ portal status<br>● billing fix-webhook-retry-loop live · dirty:2<br>api refactor-auth-middleware unpushed:3<br>infra migrate-postgres-to-d1 dirty:11<br>◇ 24 folders · 3 dirty · 1 unpushed · 1 live
portal ls --json — script over your history
❯ portal ls --json | jq -r<br>'.[] | select(.orphan) | .title'<br>research-vector-databases<br>old-exporter-prototype
portal doctor — relink orphaned sessions
❯ portal doctor<br>⌁ 7c3d91aa research-vector-databases<br>was: ~/code/old/searchsvc<br>1) ~/code/acme/searchsvc<br>relink to [1]: 1<br>✓ relinked → ~/code/acme/searchsvc
in practice
you remember the work, not the folder —<br>portal go "the stripe retry thing" drops you back mid-task. No grep, no digging.
reorganize without losing history — portal mv carries each<br>folder's history as you restructure; portal doctor relinks ones you already moved.
spin off a project with its context — make the new folder, then<br>portal pull "auth refactor" — history follows, resumes forked, original untouched.
standup, generated —<br>portal ls --json | jq -r '[.[] | select(now - .mtime<br>— everything you touched in 24h, newest first.
shutdown guard — portal status | grep -q unpushed && echo "don't close yet"<br>— one line in your logout hook; never lose a commit again.