One for all agents
Every AI subscription, every account and every computer you own, in one chat. PugPort sends each task to whichever agent still has room, and hands the work over when one runs dry.
Free under the Apache 2.0 license. Windows first, macOS and Linux coming soon.
Live routing
Illustrative routing, simulated usage
Your chat
Fix the failing login test and run the suite.
Running on Codex (work)GPT-6.1 Sol · high
most room + hard task → GPT-6.1 Sol, high
Summarize this meeting transcript in five bullets.
Running on Claude Code (work)Sonnet 5.5
most room + quick task → Sonnet 5.5
Usage limit reached.
Codex (work) · Sol → Claude Code (work) · Opus
Completed: found the expired token in the test data. Next: replace it and run the suite.
Accounts on this computerRoom left
Your other computers
Bots
Works with
Agents
- Claude Code
- Codex
- Grok CLI
- Cursor CLI
API models through Pi
- OpenAI
- DeepSeek
- Kimi
- GLM
Bots
- @@Muse
- @@Grok Bot
Your computers
- @@Mac mini
- @@Ubuntu
- Any machine you pair
Every task finds room.
Sign in to several accounts of the same agent and PugPort spreads the work across them. Each task goes to the account with the most room left, with a model and effort picked for that task.
- Picks the account with the most usage left, across every agent and account you signed in to.
- Picks the model and effort per task: a lighter model for a summary, Opus 5.5 or GPT-6.1 Sol on high for a hard fix.
- Hits a usage limit mid-task? The work moves to an account with room, with a checked handoff note.
- Pin an agent and the task stays on it.
- Resume an interrupted task on the same agent, model and session.
Fix the failing login test in web-app.
Running on Claude Code (work)Opus 5.5 · high
most room + hard task → Opus 5.5, high
Summarize this meeting transcript in five bullets.
Running on Codex (side)GPT-6 Astra · medium
room left + quick task → GPT-6 Astra, medium
Usage limit reached.
Claude Code (work) reached its usage limit. Continued on Codex (work).
Claude Code · Opus → Codex · Sol
Completed: found the expired token in the test data. Next: replace it and run the suite.
Room left
Bots join the same chat.
Outside chat bots sit next to your agents. Call Muse, Meta’s web chat, or Grok Bot by name, and the answer comes back to the conversation you asked in.
- Call them with @@Muse or @@Grok Bot, alone or next to your other agents.
- Add one in Usage & accounts → Account → Add → Bot.
- Muse replies land in your chat.
- Grok Bot replies come back once you set up a Grok routine.
@@Muse what do reviews say about this kettle?
Sent to Muse
Meta’s web chat answers in this conversation
Most reviews praise how fast it boils; a few mention a loud click.
@@Grok Bot check this week’s posts about it.
Sent to Grok Bot
the reply comes back through your Grok routine
Posts this week focus on the price and the new lid.
Your other computers, on call.
Run PugPort’s node on a Mac mini, an Ubuntu box or any machine you pair. Then call it by name from your chat. It works with its own agents and sends the result back.
- Set up a node with
pugport node add,installandpair; check it withpugport node status. - Runs on Linux and macOS.
- Call it with @@ and its name: @@Mac mini build the iOS app.
- The result lands back in the chat you sent it from.
- Computers connect over Tailscale.
pugport node uninstallremoves it again.
@@Mac mini build the iOS app.
Sent to Mac mini
the Mac mini picks its own agent: Claude Code
- Pulled the latest branch
- Archived the iOS build
- Copying the archive back
The iOS build archived without warnings.
PugDemo.xcarchive.zipYour other computers
- Mac minimacOS · Online
- UbuntuLinux · Online
Connected over Tailscale
Agents that ask each other.
Open Swarm next to the chat title and let agents hand sub-tasks to each other. One writes, another reviews, a third checks the wording, and you see every step.
- Agents delegate sub-tasks to each other and message each other.
- A member tree shows who asked whom.
- Defaults: up to 60 members, 4 levels deep, 4 running at once.
- Collaboration messages can’t widen permissions or skip approvals.
- Claude Code (work)Write the migration and its testOpus 5.5 · high
- Codex (work)Asked by Claude Code: review the migrationDone
- GrokAsked by Claude Code: check the changelog wordingRunning
- Codex (side)Asked by Grok: list the renamed columnsWaiting
The new column needs a default. Everything else looks right.
Usage you can trust.
Routing is only as good as the numbers behind it. PugPort keeps a usage ledger with where each reading came from and when, and it never fills a gap with a guess.
- Readings come from each service, with their source and time.
- Unknown stays unknown. No reading means no number.
- Every account is read on its own, so two accounts of one agent never blur together.
- Usage left per account is one command away:
pugport status.
Mods change the chat, not the rules.
A mod is a mode for one conversation: a page of notes, a few fields and buttons that save them or fill the chat for you. It is described in a small JSON file, and PugPort draws it.
- Markdown, up to 16 text fields and up to 16 save or fill-the-chat actions.
- PugPort never runs uploaded JavaScript, HTML or install scripts.
- A mod can’t change the model, permissions or budget.
- Each conversation keeps its own mod and its own saved state.
- Search, filter, install, import and download mods in the Mods Store.
See it work.
Five everyday jobs, played out in a window that looks like the app.
Chats
Summarize these 12 supplier PDFs into one table.
Running on Codex (work)GPT-6.1 Sol · medium
most room + everyday task → GPT-6.1 Sol, medium
Fix the failing login test in web-app.
Running on Claude Code (home)Opus 5.5 · high
next most room + hard task → Opus 5.5, high
Rename the trip photos by date and place.
Running on Codex (side)GPT-6 Astra · medium
little room left + quick task → GPT-6 Astra, medium
- 12 PDFs read, table drafted
- Login test fixed, suite green
- 400 photos renamed, no duplicates
Here is the supplier table: 12 rows, prices in one currency.
suppliers.xlsxUsage
Illustrative readings
Rename the 400 photos from our Lisbon trip by date and place.
Running on Codex (work)GPT-6.1 Sol · medium
everyday task → GPT-6.1 Sol, medium
- Read the photo dates and places
- Prepared the new names
- Checked for duplicate names
Usage limit reached.
Codex (work) reached its usage limit. Continued on Claude Code (work).
Codex · Sol → Claude Code · Opus
Completed: metadata check and name preview. Next: apply the names and verify the photo count.
All 400 photos are renamed by date and place. Final count: 400 photos, no duplicate names.
2026-06-12_Lisbon_001.jpgUsage
Illustrative readings
@@Mac mini build the iOS app and send me the archive.
Sent to Mac mini
the Mac mini picks its own agent: Claude Code
- Pulled the latest branch
- Archived the iOS build
- Copied the archive back
The iOS build archived without warnings.
PugDemo.xcarchive.zip@@Ubuntu run the full test suite on the same commit.
1,284 tests passed in 6 minutes. Log attached.
test-run.logUsage
Illustrative readings
@@Muse @@Grok Bot what are people saying about the new phone this week?
Most reviews praise the battery and the camera; a few mention heat while charging.
Posts this week focus on the price and on the new charging port.
People like the battery and camera, argue about the price, and some report heat while charging.
Usage
Illustrative readings
Write the database migration, then ask Codex to review it.
Running on Claude Code (work)Opus 5.5 · high
most room + hard task → Opus 5.5, high
- Wrote the migration
- Asked Codex (work) to review
Two issues: the new column needs a default, and the index should be created concurrently.
Fixed both and re-ran the migration on a copy of the database. It applies cleanly.
Usage
Illustrative readings
Send several tasks and PugPort runs them side by side, each on the account with the most room, with a model that fits the job.
The work around the work.
Steer while it works.
Correct a running task, or edit, reorder and cancel queued messages.
A queue that survives restarts.
Deadlines and priorities persist. Separate chats run side by side; messages in one chat stay in order.
Machine load decides when work starts.
Tasks wait for room on your computer, not just for usage, so a heavy job never freezes the rest.
Every run on record.
Output, tool calls, approvals and token use for every run, stored on your computer.
API models through Pi.
Add OpenAI, DeepSeek, Kimi, GLM and other API models next to your subscriptions, in the same chat.
Skills, MCP tools and local models.
Add them in Settings → Extensions when you want them. They are optional and not in the default download.
Or stay in the terminal.
Type pugport in any folder to chat there. It is read-only until you allow edits, and it opens the desktop app first if it isn’t running.
Inside a chat
/new/status/open/help/quit
Type @ or @@ to call a role, an agent, a bot or another computer.
pugportChat in the current folder. Read-only until you allow edits.
pugport -wAllow edits in this folder.
pugport -cContinue the last chat.
pugport ask "Summarize the meeting notes"One task, routed for you.
pugport ask --agent Codex "Fix the date bug"One task, on the agent you name.
pugport statusUsage left on every account.
pugport openOpen the desktop app.
pugport node addAdd another computer. Then node install, pair, status or uninstall.
Your logins, your computer.
PugPort starts the official command-line tools you have already installed and signed in to. It never proxies or imitates them, and your passwords never pass through it. Each account signs in on its own.
Chats, history and usage records live in a local database on your computer, along with the output, tool calls, approvals and token use of every run. Your tasks still go to the AI services you choose.
PugPort is free under the Apache 2.0 license, and it is in early development. Your other computers join over Tailscale. Windows comes first; macOS and Linux are coming soon. Follow it on GitHub.
Build it with us.
Discord
Invite opens at launchAsk questions and share the mods you make.
GitHub
Follow on GitHubFollow the project and watch for the first release.
Dev log
Read the dev logNotes on what changed and why.
Get PugPort.
Free under the Apache 2.0 license. Downloads open soon; bring the subscriptions you already have.
- WindowsComing soon
- macOSComing soon
- LinuxComing soon
Downloads are not open yet. Get notified by email when they are.
Get notifiedQuestions.
- What does PugPort cost?
- PugPort is free under the Apache 2.0 license. You keep paying for the AI subscriptions you already have, nothing more.
- Does it share or proxy my accounts?
- No. PugPort starts the official command-line tools you have installed and signed in to. Your passwords never pass through it.
- Can I use more than one account of the same agent?
- Yes. Each account signs in on its own. PugPort reads every account’s usage separately and picks the one with the most room.
- What are bots, and how do I add one?
- Bots are outside chat bots you can call from the same chat: Muse, Meta’s web chat, and Grok Bot. Add one in Usage & accounts → Account → Add → Bot, then call it with @@Muse or @@Grok Bot. Muse replies land in your chat; Grok Bot replies come back once you set up a Grok routine.
- How do my other computers join?
- Run PugPort’s node on them with pugport node add, install and pair (Linux and macOS), and connect them over Tailscale. Then call them with @@ and a name. They run tasks with their own agents and send the results back.
- What is a mod?
- A mode for one conversation, described in a small JSON file: Markdown, text fields and buttons that save or fill the chat. PugPort draws it and never runs uploaded code, and a mod can’t change the model, permissions or budget. The Mods Store opens with the public launch.
- Can I add skills, MCP tools or local models?
- Yes, in Settings → Extensions: skills, MCP tools and local speech, image and history models. They are optional and not part of the default download.
- Which systems does it run on?
- Windows first. macOS and Linux are coming soon.
- Where do my chats and records live?
- In a local database on your computer. Your tasks still go to the AI services you choose.
