The governance layer for AI agents.
PLNTH (pronounced "plinth") is a managed runtime for AI agents. Connect your tools, set a trigger, deploy in one command. Every action logged. Every cost tracked.
$ plnth agent create \ --name pr-reviewer \ --instructions "Review pull requests for security issues, \ missing tests, and code style. Comment with findings." \ --trigger github:pull_request Agent created: agt_k8v2m Model: claude-sonnet-4-6 (Junior — $5/hr) Trigger: github:pull_request Ward: default (all tools allowed, budget cap $10) Status: running First run started. Streaming output...
GitHub. Slack. Gmail. Linear. OAuth handles the rest.
$ plnth connect github Opening browser for GitHub authorization... Connected: github (repos: all, events: push, pull_request, issues) $ plnth connect slack Opening browser for Slack authorization... Connected: slack (channels: invited, events: message, reaction) $ plnth connections list NAME STATUS SCOPES github connected repos, events slack connected channels, events gmail connected read, send, labels linear connected issues, comments, projects
Cron schedules. Webhooks. Events from connected tools. Define when your agent runs — it decides what to do.
$ plnth trigger create \ --agent pr-reviewer \ --event github:pull_request Trigger created: trg_9xn4r Agent: pr-reviewer (agt_k8v2m) Event: github:pull_request Status: active $ plnth trigger create \ --agent daily-digest \ --cron "0 9 * * 1-5" Trigger created: trg_3bw7p Agent: daily-digest (agt_f1q8s) Cron: weekdays at 09:00 UTC Status: active $ plnth triggers list AGENT TRIGGER TYPE STATUS pr-reviewer trg_9xn4r event active daily-digest trg_3bw7p cron active inbox-triage trg_7km2v event active
Every tool call. Every decision. Every cost. The audit trail is automatic — no configuration required.
$ plnth runs list --agent pr-reviewer --limit 3 RUN TRIGGER DURATION COST STATUS run_8v2k github:pull_request 1m 42s $0.14 completed run_3n7x github:pull_request 2m 08s $0.19 completed run_9p1w github:pull_request 0m 53s $0.07 completed $ plnth run inspect run_8v2k Run: run_8v2k Agent: pr-reviewer (agt_k8v2m) Duration: 1m 42s | Cost: $0.14 | Model: claude-sonnet-4-6 Tool calls: 1. github.get_pull_request → PR #247 "Add user export endpoint" 2. github.get_pr_diff → +142 -3 lines across 4 files 3. github.list_pr_comments → 0 existing comments 4. github.create_pr_comment → Posted review (3 findings) Findings posted: - Missing input validation on export params (line 47) - No rate limiting on new endpoint (line 82) - Test coverage: 0 tests for new endpoint Ward violations: 0 | Budget remaining: $9.86
Managed intelligence starts at $5/hr. Bring your own model for $1/hr compute. Same governance either way.
General-purpose managed model. The default. Recommended.
Higher-capability model for complex reasoning.
Frontier model for critical, high-stakes tasks.
Your model, your keys. Compute and governance included.
Every tier includes: ward governance, audit trail, triggers, connectors, containment.
See full pricing — plnth.dev/pricingEvery agent runs inside a ward — an infrastructure-enforced boundary that defines what the agent can access, what it can do, and what it costs. The agent cannot modify its own ward.
The default ward is permissive — but it's still a ward. All connected tools allowed, all domains reachable, budget cap enforced. The governance infrastructure is always running — even when permissions are wide open.
Wards are infrastructure-as-code. Version them. Review them in pull requests. Deploy them alongside your application.
Read the security model — plnth.dev/security$ plnth ward show --agent pr-reviewer Ward: wrd_d4k9m (default) Tools: all connected tools allowed Domains: all reachable Budget: $10.00 cap ($0.14 used) Audit: active (12 events logged) $ plnth ward update --agent pr-reviewer \ --tools github.get_pull_request,github.get_pr_diff,github.create_pr_comment \ --domains api.github.com \ --budget 5.00 Ward updated: wrd_d4k9m Tools: 3 allowed (was: all) Domains: api.github.com (was: all) Budget: $5.00 cap Audit: active
Your agents. Your triggers. Your instructions. Running while you sleep.
One command to connect. One command to create. Running in under five minutes.
$ plnth login $ plnth connect github $ plnth agent create --name my-agent --instructions "..."