Your AI agents have
full access to everything.
That's the problem.
Your agents touch Stripe, OpenAI, and Anthropic. When something goes wrong, you're logging into three dashboards to figure out what happened. Fencepost gives you one place to see everything, set boundaries, and freeze any agent instantly.
Built by someone who hit this wall
Shared API keys and zero visibility burned us in production — the same pattern teams describe in calls. Fencepost is the control layer we wished existed.
Follow along on X →"You deploy one agent with a shared API key. It works. You deploy a second the same way. By the tenth, every agent has full access, identical credentials, and zero visibility. No one made a bad decision. They just made the same small one ten times."
— a pattern we hear constantly from teams shipping agents
You can't tell which agent made a request. You can't stop one without stopping all of them. You can't see what's happening until something breaks. Fencepost fixes that — a control layer you add in two lines of code.
Use the official OpenAI , Anthropic or OpenRouter SDKs.
Same client libraries you already trust—routed through Fencepost for keys, policies, and observability.
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "sk-proj-unused",
baseURL: "https://getfencepost.xyz/openai/v1",
defaultHeaders: {
"X-Fencepost-Token": process.env.FENCEPOST_TOKEN,
},
});
const response = await openai.chat.completions.create({
model: "gpt-4o-mini", // same SDK—point it at Fencepost
messages: [{ role: "user", content: "Hello!" }],
});Every agent gets an identity.
You get control.
Always know which agent did what
Stop sharing one API key across bots. Each agent gets its own fpt_ token, so you
can trace every request back to a name — not a guess.
Let bots read data without owning your account
Scope at the endpoint: your payment helper can list charges but never issue refunds. Rules you set, not hope for.
Know why your bill spiked — before morning
Full request history per agent. Pair it with caps, alerts, and auto-freeze when spend hits the limit so a loop cannot rack up hundreds overnight.
Stop a runaway agent in one click
Freeze a single agent from the dashboard; everything else keeps running. Two lines in your existing OpenAI or Anthropic client — ship new agents without losing sleep.
Built for developers who
want to move fast and stay in control.
Solo devs & indie hackers
- → You have 3 agents sharing one key — Fencepost gives each one its own lane
- → You deserve proper security tooling — without a weekend lost to config. Here it is.
- → Two lines of code. No Docker, no certs, no weekend lost to config.
- → 7-day free trial with every feature — then the $5/month limited launch deal if you stay.
Small startup teams
- → See which agent made that expensive API call — instantly
- → New team member? Give them a scoped token, not your master key.
- → Someone leaves? Revoke access in one click.
- → Audit log ready to export when you need it
Simple. Predictable.
One plan. No seat fees. 7-day free trial, then the $5/month limited launch deal.
- · Full access to every feature during the trial
- · Unlimited agents
- · 90-day audit log
- · Freeze & scope controls
- · Per-agent budgets and alerts
- · OpenAI & Anthropic (other providers coming soon)
After 7 days, the launch deal is $5/month. Cancel anytime from your dashboard.
Questions we hear a lot
Quick answers before you wire up your first agent.
What is Fencepost, in one sentence?
Do I have to abandon the official OpenAI or Anthropic SDKs?
Where do my real provider API keys live?
fpt_ token for runtime — so you never paste a master key into every bot or workflow.What does Fencepost see when my agents make requests?
Will this add noticeable latency?
Which providers are supported today?
Can I stop one agent without taking down the rest?
How does pricing work after the free trial?
Still stuck? Start free — setup takes about a minute.
Your agents are running.
Do you know what
they can access?
Add a control layer before something breaks. Set up takes less than a minute.
Start in 60 seconds →