Skip to content

Installation

Terminal window
cargo install --git https://github.com/cybersader/portagenty

This downloads the repo, builds a release binary, and drops it at ~/.cargo/bin/pa. No manual clone, no cd, no git pull to stay current — just re-run the same command whenever you want to update.

Terminal window
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env"
cargo install --git https://github.com/cybersader/portagenty

Three commands, works on Linux / macOS / WSL. On Windows native, install Rust via https://rustup.rs/ then run the cargo install line in PowerShell or CMD.

pa doesn’t bundle its own — it drives tmux or zellij. You need at least one:

  • tmux (recommended for cross-device takeover — pa uses tmux attach -d internally):
    Terminal window
    sudo apt install tmux # Debian / Ubuntu / WSL
    brew install tmux # macOS
  • zellij (alternative, better integration with OpenCode): see https://zellij.dev/documentation/installation.

WezTerm is a deferred non-fit for portagenty’s cross-device model — see the roadmap for the rationale.

Terminal window
pa --version
pa --help

If pa: command not found, make sure ~/.cargo/bin is on your PATH. Rustup’s installer adds it by default.

Planned for v1.x. Until then, the cargo install --git one-liner is the recommended path — it builds locally against your exact platform and toolchain.

portaconv (pconv) is portagenty’s sister tool — a terminal-native extractor + MCP server for Claude Code conversation history. portagenty integrates with it via pa convos (scoped lookups) and pa init --with-agent-hooks (scaffolds an .mcp.json that registers pconv mcp serve).

Terminal window
cargo install --git https://github.com/cybersader/portaconv

Lands at ~/.cargo/bin/pconv. Verify with pconv --version. See the Portaconv integration concept page for the full workflow — folder-move recovery, WSL↔Windows path rewriting, agent self-discovery.

pa works without pconv installed; the pa convos subcommand just errors with a clear install hint if you try to use it.

Terminal window
cat > /tmp/smoke.portagenty.toml <<'EOF'
name = "Smoke"
multiplexer = "tmux"
[[session]]
name = "shell"
cwd = "/tmp"
command = "bash"
EOF
pa list -w /tmp/smoke.portagenty.toml
pa launch shell -w /tmp/smoke.portagenty.toml

The first command should print the resolved workspace; the second attaches you to a new tmux session running bash in /tmp. Detach with Ctrl-b d.