# Portal: Teleport into your Claude Code sessions

> Source: <https://portal.cybercorpresearch.com/>
> Published: 2026-07-17 16:32:57+00:00



```
██████╗  ██████╗ ██████╗ ████████╗ █████╗ ██╗
██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝██╔══██╗██║
██████╔╝██║   ██║██████╔╝   ██║   ███████║██║
██╔═══╝ ██║   ██║██╔══██╗   ██║   ██╔══██║██║
██║     ╚██████╔╝██║  ██║   ██║   ██║  ██║███████╗
╚═╝      ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝╚══════╝
```

a **session picker** for Claude Code

search every past session · jump back in · move history between folders

`curl -fsSL `**https://portal.cybercorpresearch.com/install.sh** | bash

macOS / Linux · needs [Claude Code](https://claude.com/claude-code) + zsh · installs [fzf](https://github.com/junegunn/fzf), wires ~/.zshrc

type to re-rank · ↵ jump · ^N new here · ^Y copy · ^E older versions · ^/ preview

```
❯ portal go "the webhook retry fix"
◇ teleport ~/code/acme/billing (0.94)
▸ resume f4e9b2c1 — fix-webhook-retry-loop
❯ cd ~/code/acme/gateway
❯ portal pull "auth refactor"
◇ pulled refactor-auth-middleware → here
▸ resuming forked — original untouched
❯ portal mv ~/code/acme/api ~/code/platform/api
◇ moved folder → ~/code/platform/api
  ✓ session a1b2c3d8 migrated
◇ 3 session(s) now live at the new path
❯ portal status
● billing              fix-webhook-retry-loop     live · dirty:2
  api                  refactor-auth-middleware   unpushed:3
  infra                migrate-postgres-to-d1     dirty:11
◇ 24 folders · 3 dirty · 1 unpushed · 1 live
❯ portal ls --json | jq -r
   '.[] | select(.orphan) | .title'
research-vector-databases
old-exporter-prototype
❯ portal doctor
⌁ 7c3d91aa  research-vector-databases
   was: ~/code/old/searchsvc
   1) ~/code/acme/searchsvc
   relink to [1]: 1
   ✓ relinked → ~/code/acme/searchsvc
```

`portal go "the stripe retry thing"`

drops you back mid-task. No grep, no digging.`portal mv`

carries each
folder's history as you restructure; `portal doctor`

relinks ones you already moved.`portal pull "auth refactor"`

— history follows, resumes forked, original untouched.`portal ls --json | jq -r '[.[] | select(now - .mtime < 86400)] | sort_by(-.mtime)[] | "\(.project) \(.title)"'`

— everything you touched in 24h, newest first.`portal status | grep -q unpushed && echo "don't close yet"`

— one line in your logout hook; never lose a commit again.
