PortEden CLI — Manage AI Permissions From the Terminal
Mint scoped tokens, inspect access rules, tail the audit log, and connect any MCP client without leaving your shell. One binary, three install paths, every PortEden capability scriptable.
Free tier · No credit card required
Three Install Paths. One Binary.
brew install porteden/tap/porteden macOS + Linux. Auto-updates with `brew upgrade`.
What Goes Wrong Without PortEden
Every Token Rotation Means a Trip Through the Dashboard
Your security team rotates keys quarterly. Each rotation is a click-through marathon — log into PortEden, find the token, regenerate, paste into the right environment, repeat for ten projects. There's no way to script it, no way to commit it, no way to audit who rotated what.
The Audit Log Lives in a UI You Don't Trust to Grep
When an incident hits, the on-call engineer wants `grep`, not a date picker. A web UI that paginates 50 events at a time and hides the JSON behind a 'view details' modal is the wrong shape for the people who actually run the system at 2 a.m.
Setting Up a New MCP Client Is a Manual Copy-Paste Dance
Open Claude Desktop's config, find the right path, paste a JSON block, restart. Repeat for Cursor, ChatGPT, Gemini. Forget which servers you added last time. The CLI should write the config for you and tell you which server got registered where.
Built For CLI
Mint and Rotate Scoped Tokens
`porteden token create --scope=email.read --user=jane@org.com --ttl=24h` returns a JWT scoped to one user, one verb set, one expiry. Pipe to a secrets manager, commit a config snippet to your IaC, rotate from CI without ever touching the dashboard.
Tail and Filter the Audit Log
`porteden audit tail --since=1h --user=jane@org.com --tool=email` streams structured events to stdout in JSON. Pipe through `jq`, ship to your SIEM, alert on anomalies. The same log you'd see in the UI, with the shape every Unix tool already understands.
Wire Any MCP Client With One Command
`porteden mcp connect claude --servers=email,calendar,drive` writes the right config to Claude Desktop's config file (or Cursor's, or your custom client's), creates a scoped token, and restarts the client. Idempotent — run it twice and nothing breaks.
Inspect and Test Access Rules
`porteden policy test --token=… --action=email.send --to=external@vendor.com` evaluates the policy locally and tells you allow / deny + which rule matched. Run it in CI before you ship a policy change. Catch over-permissive rules before they reach prod.
The Same Workflow, Two Very Different Outcomes
Brew Install. Run Once. Free for Solo Use.
`brew install porteden/tap/porteden && porteden auth login` and you're connected. Free tier covers solo use; team plans add SSO and shared scopes.
Frequently Asked Questions
What can the CLI actually do?
How does it authenticate?
Does it work on Windows?
Can I use it in CI?
What format is the audit log output?
Is the CLI open source?
How does this relate to OpenClaw?
What does a token rotation look like under the hood?
Keep Exploring
Ready to Manage AI Access From the Shell?
`brew install porteden/tap/porteden && porteden auth login`. That's the install. Free for solo use; team plans on /pricing/.
Need SSO or a self-hosted control plane? Talk to sales →