Product capabilities

What your developers
actually work in.

Projects and sessions on one canvas. Telemetry while the agent runs, and memory that carries from one session to the next. All of it running against models in your own account.

Agent workflows

Plan, edit, test, debug, review, summarize, and open PRs from one session surface.

Memory views

Explore workspace memory as a map, list, timeline, or filtered knowledge base.

Provider control

Switch between cloud APIs, private GPU endpoints, local models, and custom OpenAI-compatible backends.

Enterprise controls

Budgets, audit trails, approval points, key storage, and policy controls for team rollout.

01
Session canvas

One surface for everything an agent does.

Workspaces hold projects. Sessions hold conversations. Every tool call, plan, and approval lives on a single canvas with the context you need to actually ship.

  • Inline plan approval
    Plans render as cards inside the chat. Approve, request changes, or open the full plan - without leaving the session.
  • Persistent HUD rail
    Context budget, recent file changes, and quick actions on the right at all times.
Active session
Fix flaky checkout test
JDYou
The checkout test fails about one run in five on CI. Find out why and fix it.
readtests/checkout.spec.ts
grep"retryPayment" src/
terminal_runpnpm test checkout --repeat 20
browser_openlocalhost:3000/checkout
editsrc/checkout/retry.ts
qwen3-coder-30b

Found it: retryPayment() minted a new idempotency key when a request timed out, so a slow runner could submit the charge twice and the single-charge assertion failed.

I made the key per-cart and added a regression test. 20 of 20 runs pass now. A review sub-agent is reading the diff.

Busy|
Memory
Fix5h ago
Checkout test flakes on slow CI runners
retryPayment() minted a new idempotency key on timeout, so a slow runner could charge twice.
src/checkout/retry.ts
Decision2d ago
One idempotency key per cart
Keys are derived from the cart id so every retry of the same checkout is safe to replay.
paymentsretry.ts
Convention1w ago
Run unit tests with pnpm test:unit
The full suite needs Docker; unit tests are the fast loop for agent runs.
package.json
Onboarding3w ago
Stripe test keys live in .env.test
Never read .env.local in tests. The test keys are scoped to the sandbox account.
.env.test
Architecture1mo ago
Redis backs sessions and the job queue
One Redis instance; anything new that needs shared state should reuse it.
src/server/redis.ts
Rejection1mo ago
Tried in-memory rate limiting
Does not work across the 3 API pods; counts diverge. Use Redis.
api
showing 6 of 37
02
Empty state

Start a session in seconds.

Every new session begins with a hero composer, model + mode pre-selected, and a grid of templates for the common patterns: bug RCA, refactor sweep, doc audit, code review.

  • Templates that prefill
    Click one to scaffold the prompt. Edit before sending - nothing is auto-submitted.
New session
New Session
●

What should we build?

Start a new session or choose a template below.

4qwen3-coder-30b
Workspaces
acme-store
~/dev/acme-store
acme-api
~/dev/acme-api
design-system
~/dev/design-system
Templates
Resume
03
Command palette

Anywhere you are, ⌘K is home.

Jump between sessions, swap models mid-flight, open the providers tab, or fire a workspace action - without breaking your typing rhythm.

  • Grouped by intent
    Sessions, model switching, providers, and workspace actions - all in one keystroke.
  • Scoped by workspace
    Results never leak across workspaces. Your client work stays separate from your side project.
  • Real-time filter
    Type to filter live. Hit ↵ to act, ⌘↵ to act in a new tab.
Shortcut⌘K
Command palette
Rate-limit the public API
JDYou
Add rate limiting to /api/products and /api/search. 60 requests a minute per key, 429 with Retry-After.
readsrc/server/routes.ts
grep"express-rate-limit|redis" package.json src/
readsrc/server/redis.ts
llama-3.3-70b

You already run Redis for sessions, so I drafted a plan that uses a sliding-window limiter keyed on the API key, with a per-route override table.

It is in the Plan panel. Approve it and I will implement it with tests.

Idle|
Plan

Rate-limit the public API

  1. Limiter. Sliding-window limiter in Redis, keyed on the API key, 60 req/min default.
  2. Routes. Apply it to /api/products and /api/search with a per-route override table.
  3. Responses. Return 429 with Retry-After and X-RateLimit-* headers.
  4. Tests. Unit tests for the window math, plus an integration test hitting the limit.
04
Live telemetry

Know what every agent is costing - to the cent.

A slim status strip keeps tokens, spend, context, and silent-time in your peripheral vision. Click to expand into the full HUD when you need the deeper view.

  • Context budget bar
    Visualizes usage vs. window vs. compaction threshold so you see compactions coming before they happen.
  • Per-session spend
    Live dollar count, plus daily cap with auto-pause.
  • Wall-time + silent-time
    Catch stalled agents in seconds - silent-time warnings fire at 60s.
Expanded telemetry HUD
Rate-limit the public API
JDYou
Add rate limiting to /api/products and /api/search. 60 requests a minute per key, 429 with Retry-After.
readsrc/server/routes.ts
grep"express-rate-limit|redis" package.json src/
readsrc/server/redis.ts
llama-3.3-70b

You already run Redis for sessions, so I drafted a plan that uses a sliding-window limiter keyed on the API key, with a per-route override table.

It is in the Plan panel. Approve it and I will implement it with tests.

Session telemetryIdleconnected; updated 2.1s ago
Context
42%
84k/200k
Compaction
55%
to 160k threshold
Spend
$0.4213
session total · GPU time
Reasoning
1,204
tokens
Wall time
2m 14s
silent 3s
Input (cum)
1.24M
92% cached · 98.1k fresh
Active tool
—
awaiting...
Model
llama-3.3-70b
RunPod · A100 80GB
Idle|
Plan

Rate-limit the public API

  1. Limiter. Sliding-window limiter in Redis, keyed on the API key, 60 req/min default.
  2. Routes. Apply it to /api/products and /api/search with a per-route override table.
  3. Responses. Return 429 with Retry-After and X-RateLimit-* headers.
  4. Tests. Unit tests for the window math, plus an integration test hitting the limit.
05
Agent teams

Agents as first-class teammates.

Podcode is built for collaborative agent teams - much of Podcode itself is built by agent profiles working alongside a single human founder. Invite agents as first-class members of your workspace.

  • Coordinated profiles
    Swap between Builder, Researcher, Reviewer, and Triage profiles-or create customized personas with custom system prompts.
  • Built for agent-driven teams
    Podcode brings planning, implementation, review, debugging, and documentation workflows together in the same workspace your engineers use every day.
  • Human-in-the-loop safety
    Agents draft plans, suggest diffs, and queue tasks, but humans keep complete, granular approval control. Nothing runs without a human yes.
Agent profiles
Fix flaky checkout test
JDYou
The checkout test fails about one run in five on CI. Find out why and fix it.
readtests/checkout.spec.ts
grep"retryPayment" src/
terminal_runpnpm test checkout --repeat 20
browser_openlocalhost:3000/checkout
editsrc/checkout/retry.ts
qwen3-coder-30b

Found it: retryPayment() minted a new idempotency key when a request timed out, so a slow runner could submit the charge twice and the single-charge assertion failed.

I made the key per-cart and added a regression test. 20 of 20 runs pass now. A review sub-agent is reading the diff.

Busy|
review localhost:3000/checkout
acmeCart (2)
Checkout
Trail runner 2$32.00
Merino socks$16.00
Total$48.00
4242 4242 4242 4242 · 12/29 · 123
✓ Payment succeeded · 1 charge
Watching — take control to interact
06
Keys & secrets

Your keys stay in your OS keychain.

Provider keys live in your OS keychain. Podcode reads them locally at session start - they never sync to our servers, and stay on your device.

  • OS keychain storage
    macOS Keychain · Windows Credential Manager · libsecret on Linux.
  • Env vars too
    Set workspace-scoped environment variables for custom providers or self-hosted endpoints.
  • Audit when you need it
    Per-key activity log in Settings → Logs. Rotate or revoke any key in two clicks.
Keys & secrets
Fix flaky checkout test
JDYou
The checkout test fails about one run in five on CI. Find out why and fix it.
readtests/checkout.spec.ts
grep"retryPayment" src/
terminal_runpnpm test checkout --repeat 20
browser_openlocalhost:3000/checkout
editsrc/checkout/retry.ts
qwen3-coder-30b

Found it: retryPayment() minted a new idempotency key when a request timed out, so a slow runner could submit the charge twice and the single-charge assertion failed.

I made the key per-cart and added a regression test. 20 of 20 runs pass now. A review sub-agent is reading the diff.

Busy|
review localhost:3000/checkout
acmeCart (2)
Checkout
Trail runner 2$32.00
Merino socks$16.00
Total$48.00
4242 4242 4242 4242 · 12/29 · 123
✓ Payment succeeded · 1 charge
Watching — take control to interact
07
Every provider

One interface for every model.

Anthropic, OpenAI, Google, RunPod, Ollama, vLLM, llama.cpp - connected as equal citizens and switchable per task. Run a frontier cloud model when you need raw intelligence, or a local one when a single token can't leave the building.

  • No lock-in
    When a lab reprices or a better open model ships, swap without re-tooling. You are never captive to one vendor.
  • Local means air-gapped
    Point at Ollama, vLLM, or llama.cpp and your code, prompts, and keys stay on hardware you own - the answer you take to a security review.
Local & self-hosted providers
Fix flaky checkout test
JDYou
The checkout test fails about one run in five on CI. Find out why and fix it.
readtests/checkout.spec.ts
grep"retryPayment" src/
terminal_runpnpm test checkout --repeat 20
browser_openlocalhost:3000/checkout
editsrc/checkout/retry.ts
qwen3-coder-30b

Found it: retryPayment() minted a new idempotency key when a request timed out, so a slow runner could submit the charge twice and the single-charge assertion failed.

I made the key per-cart and added a regression test. 20 of 20 runs pass now. A review sub-agent is reading the diff.

Busy|
review localhost:3000/checkout
acmeCart (2)
Checkout
Trail runner 2$32.00
Merino socks$16.00
Total$48.00
4242 4242 4242 4242 · 12/29 · 123
✓ Payment succeeded · 1 charge
Watching — take control to interact
Workspace memory

Memory that stays in your workspace.

Podcode remembers the decisions, conventions, and dead-ends your agents hit, and reuses them across sessions. That institutional memory lives in your workspace, on your infrastructure - not in a vendor's index.

An asset you own
The longer your team works, the sharper the agents get - and the knowledge is yours to keep, export, or wipe.
Scoped and private
Memory stays inside its workspace. Client work never bleeds into a side project, and nothing is synced to us.
Memory · podcode-system
Memorypodcode-system41 fragments
Fragments41
Composition · 9 types
Decision7 Fix6 Rejection2 Pattern7 Architecture4+4 more
Avg confidence
84%
Freshness
38 fresh· 3 stale
Updated2d ago
Semantic41 fragments indexed
embedding projection · PCA · cosine
API Design
Auth & Sessions
Memory Engine
Providers & Models
UI / Frontend
CI / CD
Onboarding
Notifications
Decision Fix Rejection Pattern Architecture Preference Convention Context Onboarding

Interactive demo with mock data. Hover a node, click to inspect, drag to pan, switch Map / List / Time, filter by type, or try Add and Dedupe.

Map view

See relationships between decisions, fixes, conventions, and architecture notes.

List and filters

Filter memory by type, scope, tags, and search terms when you need a precise answer.

Time view

Track how team knowledge evolved across sessions, plans, approvals, and changes.

The harness

The scaffolding around the model.

Frontier-class results don’t have to come from frontier models. The harness - memory that compounds, profiles that fit the task, and a plan-then-verify loop - is what gets them out of the open models you host.

01
Memory that compounds
The model forgets; the workspace doesn’t. Decisions, fixes, and conventions carry into every session, so a smaller model starts with the context a bigger one would have to be re-taught.
02
Profiles that fit the task
Reviewer, Builder, Researcher, Triage - or your own persona with a custom system prompt. The right profile for the job beats one big model at everything.
03
Routing and failover
Routine work runs on the economical private model; hard tasks escalate. Swap models mid-session with ⌘K when a lab reprices or a better open model ships.
04
Plans, checks, retries
Plans render as cards inside the chat - approve, request changes, or open the full plan. The agent runs the tests and reworks what fails, before anything lands.
Elastic by default

Your model, on tap.

A private model should cost what you use it, not what you keep it. Deploy a RunPod endpoint or serverless model, watch the cost-per-hour in the providers view, and let the bill follow your usage - not your wall clock.

1
Deploy in minutes
Pick a model template, point it at your RunPod account, and it’s serving. Serverless for bursty tasks, a persistent pod for long sessions.
2
Pause when you stop
One click pauses any pod. Spend caps stop all RunPod resources the moment you hit a daily USD limit.
3
The watchdog keeps it cheap
An optional background daemon pauses idle pods even when Podcode is closed - so nothing bills overnight.
4
Resume in a click
Same model, same weights, serving again in a moment. You never pay for the gap.
Enterprise controls

The admin surface for private agent rollout.

Podcode gives teams the controls they need for secure rollout: governance, visibility, model routing, and safe developer workflows.

Private inference backend

Provision and operate approved private model endpoints for coding-agent workloads.

Model routing

Route routine work to economical private models and escalate hard tasks when needed.

Budget controls

Set team, repo, model, and task-level spend limits with usage visibility.

Audit and approvals

Keep human-in-the-loop approval points, activity history, and exportable audit trails.

Tool permissions

Control shell, file, browser, MCP, and external integration access by workspace or team.

Retention controls

Define how prompts, traces, logs, and workspace memory are retained or wiped.

Keyboard-first

Everything has a shortcut.

Built for engineers who'd rather not touch the mouse.

⌘ K
Open command palette
⌘ ,
Open settings
⌘ N
New session
⌘ ⏎
Send message
⌘ B
Toggle sidebar
⌘ J
Attach file
⌘ \
Toggle HUD rail
/
Focus composer
?
Show shortcut sheet
Esc
Close modal / focus
G S
Go to sessions
G P
Go to plans

See it in motion.

Three minutes to your first agent session.