Your personal AI coding agent, on any Mac or Linux machine.
AgentKey is a portable AI agent environment that lives on a USB drive. Plug it into a computer, open a terminal, run agent, and your encrypted provider setup, skills, memories, MCP config, and operating habits come with you.
It is not just "an AI assistant on a USB stick." AgentKey is a portable agent identity and runtime: a way to carry your own Codex-style terminal agent between machines without reinstalling and reconfiguring everything each time.
Modern coding agents are powerful, but their setup is not portable. Every new computer usually means installing a CLI, adding API keys, configuring providers, syncing skills, recreating MCP servers, and rebuilding memory.
AgentKey turns that into a one-time bootstrap:
- Prepare the USB drive on your main computer.
- Configure your provider and encrypted vault.
- Bootstrap your local Codex skills, memories, and MCP config.
- Use the same agent profile on any supported Mac or Linux machine.
After bootstrap, other computers do not automatically merge their local Codex data into your USB. Your portable profile stays yours. When you intentionally want to refresh it from your main computer, run agent sync.
AgentKey is a portable AI agent runtime for developers and agent power users.
It is designed for people who:
- switch between multiple computers
- work in labs, classrooms, client machines, remote servers, or hackathons
- need DeepSeek, OpenRouter, OpenAI, or OpenAI-compatible providers
- want their skills, memory, MCP config, and preferred agent behavior to travel with them
- do not want to leave API keys or agent history scattered across host machines
The short pitch:
Plug in AgentKey. Your agent is back.
-
Portable by default
Runs from a USB drive on macOS and Linux. The host machine only needs Python 3 and network access. -
Personal agent profile
Carries your skills, memories, agents, MCP/plugin config sections, model preferences, and portable Codex config. -
Encrypted API vault
API credentials are stored inagentkey/secrets/secrets.env.age, encrypted with anagepassphrase. The release payload does not include user keys. -
Provider gateway
Codex talks to a local Responses-compatible gateway; the gateway translates requests to OpenAI-compatible/chat/completionsAPIs. -
China-friendly provider path
DeepSeek, OpenRouter, OpenAI, and custom OpenAI-compatible endpoints are first-class setup choices. -
One-time bootstrap, explicit refresh
First setup can bootstrap your local Codex data. Later,agent syncexplicitly refreshes the portable profile.agent sync --pluginsis available when you also want large plugin caches. -
Release packages for different needs
full,macos,linux, andlitearchives are published. The lite package downloads the current platform runtime during install. -
Diagnostics included
agent status,agent doctor, andagent test-providerhelp diagnose runtime, vault, provider, and sync issues.
Download the latest archive from Releases:
agentkey-usb-demo-0.3.3-full.tar.gzfor macOS + Linux runtimesagentkey-usb-demo-0.3.3-macos.tar.gzfor macOS onlyagentkey-usb-demo-0.3.3-linux.tar.gzfor Linux onlyagentkey-usb-demo-0.3.3-lite.tar.gzfor a tiny installer that fetches runtime on install
Install to a USB drive:
tar -xzf agentkey-usb-demo-0.3.3-full.tar.gz
cd agentkey-release
./install-to-usb.shYou can also pass the mount path explicitly:
./install-to-usb.sh /Volumes/USB
./install-to-usb.sh /media/$USER/USBStart from the USB:
cd /Volumes/USB
./startUbuntu example:
cd /media/$USER/USB
./startRun AgentKey in a project directory:
./agent --cd ~/DownloadsIf you installed the one-word shell command:
agent --cd ~/DownloadsCheck status:
agent statusTest the configured provider:
agent test-providerRun a one-shot task:
agent exec --skip-git-repo-check "Read this project and summarize it"On your main computer, first setup can bootstrap your local Codex profile into AgentKey:
- skills
- memories
- agents
AGENTS.mdmodels_cache.json[features],[plugins.*], and[mcp_servers.*]config sections
It intentionally skips:
auth.json- sessions and archived sessions
- SQLite state databases
- logs and temp files
- OAuth tokens
To refresh the portable profile later:
agent syncTo also copy large plugin caches and external skill repos:
agent sync --pluginsExport your portable profile:
agent profile exportImport it into another AgentKey drive:
agent profile import agentkey-profile-YYYYMMDD-HHMMSS.tar.gzThe profile archive includes the encrypted vault and portable agent data, but still avoids plaintext API keys and generated Codex session state.
agent status
agent doctor
agent doctor --provider
agent test-provider
agent sync
agent sync --plugins
agent profile show
agent profile export
agent profile import <archive.tar.gz>
agent update- macOS arm64/x64 or Linux arm64/x64
- Python 3 on the host computer
- Network access to your provider
- A provider API key
Current setup choices:
- DeepSeek
- OpenRouter
- OpenAI
- Custom OpenAI-compatible endpoint
The gateway currently targets OpenAI-compatible /chat/completions APIs. Native Anthropic Claude, Gemini, DashScope, and other non-compatible APIs need dedicated adapters.
AgentKey keeps provider credentials in an encrypted age vault:
agentkey/secrets/secrets.env.age
The repository and release payload are designed not to include user API keys, OAuth tokens, sessions, or SQLite state. Release validation checks for common accidental leaks before publishing.
agentkey-release/
AgentKey-USB/ USB payload scripts and portable home template
scripts/ build, test, and publish helpers
docs/ demo script and supporting docs
SHA256SUMS release asset checksums
Runtime binaries are not committed to git because they are large. They are included in GitHub Release assets, and the lite package can fetch runtime binaries during installation.
Build release archives:
cd agentkey-release
./scripts/build-release.shRun release validation:
./scripts/test-release.shPublish with GitHub CLI:
./scripts/publish-github-release.sh davidpengrj/agentkeyAgentKey is an early demo/alpha. It is already usable for macOS/Linux USB workflows, but the product surface is still intentionally simple and terminal-first.
Near-term roadmap:
- native Claude/Gemini/DashScope adapters
- faster in-place updater for large personalized drives
- optional unlock session cache
- richer MCP/skills management
- hardware shell/status display experiments