Prerequisites
- Linux or macOS system
- Rust 1.85+ (if building from source)
- An AI agent using OpenAI or Anthropic APIs
Install Fishnet
Download and install
~/.local/bin/fishnet and creates the data directory at /var/lib/fishnet (Linux) or /Library/Application Support/Fishnet (macOS).Initialize Fishnet
Run the first-time setup wizard:You’ll be prompted for:
- Master password: Encrypts your API keys (minimum 8 characters)
- First API service:
openaioranthropic - Credential name: A label for this key (e.g.,
my-openai-key) - API key: Your actual API key
- Daily budget: Maximum spend in USD per day (default: $20)
- Rate limit: Requests per minute (default: 60)
Your master password is never stored. Only a derived key is kept in your system keychain (optional).
Configure your agent
Point your AI agent to use Fishnet’s proxy instead of the real API:For OpenAI:For Anthropic:Your agent will continue using its existing API key environment variable (
OPENAI_API_KEY, ANTHROPIC_API_KEY), but Fishnet will intercept the requests and use the vault credential instead.Check status
View runtime metrics and today’s spend:Verify with doctor
Run diagnostics to confirm everything is working:Access the dashboard
Open http://localhost:8473 in your browser. The dashboard shows:- Real-time spend tracking
- Active alerts
- Request history
- Credential management
- Security policy configuration
What’s protected
Fishnet is now intercepting all AI requests and enforcing:- ✅ Spend cap: Requests denied if daily budget exceeded
- ✅ Rate limiting: Max 30 requests per minute (from your init config)
- ✅ Credential isolation: Agent never sees real API keys
- ✅ Audit logging: Every request recorded with cryptographic proof
- ✅ Prompt drift detection: Alerts on unexpected system prompt changes
Next steps
Configure policies
Set spend limits, rate limits, and security policies
Explore security features
Learn about prompt drift, endpoint blocking, and ZK proofs
Set up alerts
Get notified via Discord/Slack when budgets or limits are hit
Integrate with your agent
Framework-specific guides for OpenClaw, LangChain, and CrewAI
Troubleshooting
Connection refused
Connection refused
If your agent can’t connect to Fishnet:
- Check if Fishnet is running:
fishnet status - Verify the port is correct (default: 8473)
- Ensure
OPENAI_BASE_URL/ANTHROPIC_BASE_URLare set correctly
Budget exceeded
Budget exceeded
If requests are denied with
budget_exceeded:- Check today’s spend:
fishnet status - Increase the budget:
fishnet policy editand updatedaily_budget_usd - Or wait until midnight UTC (daily limits reset)
Rate limit errors
Rate limit errors
If you see rate limit denials:
- Check
fishnet statusfor request counts - Increase the limit:
fishnet policy editand updaterate_limit_per_minute - Or space out your requests