fishnet.toml file located at /var/lib/fishnet/fishnet.toml (Linux) or /Library/Application Support/Fishnet/fishnet.toml (macOS). You can override this location with the FISHNET_CONFIG environment variable.
Configuration File Location
Fishnet searches for configuration in the following order:- Path specified via
--configCLI flag - Path in
FISHNET_CONFIGenvironment variable - System data directory (
/var/lib/fishnet/fishnet.tomlor/Library/Application Support/Fishnet/fishnet.toml) - Legacy home directory (
~/.fishnet/fishnet.toml)
LLM Configuration
Configure AI model guardrails, spend tracking, and rate limiting.Basic Settings
Enable automatic cost tracking for LLM API requests
Daily spending limit in USD for all LLM providers combined (OpenAI + Anthropic)
Percentage of daily budget that triggers a warning alert (0-100)
Maximum LLM requests per minute per provider. Set to 0 to disable.
Whitelist of allowed model names. Empty array allows all models. Case-insensitive matching.
Model Pricing
Define per-token costs for accurate spend tracking. Fishnet includes defaults for common models.Map of model names to pricing information. Keys are trimmed and normalized.Default pricing included:
gpt-4o: 10.00 per million tokens (input/output)gpt-4o-mini: 0.60 per million tokensclaude-sonnet: 15.00 per million tokens
Cost per million input tokens in USD. Must be non-negative.
Cost per million output tokens in USD. Must be non-negative.
Prompt Drift Detection
Detect when system prompts change unexpectedly.Enable prompt drift detection
Action to take when drift is detected:
alert: Log alert and allow requestdeny: Reject the requestignore: Disable drift checking
Number of characters from start of prompt to hash. 0 means hash entire prompt.
Hash algorithm for prompt fingerprinting. Currently only
keccak256 is supported.Normalize whitespace before hashing to reduce false positives
Clear baseline prompt hashes when Fishnet restarts
Prompt Size Guard
Prevent excessively large prompts that could cause runaway costs.Enable prompt size enforcement
Maximum allowed tokens in a prompt. Estimated at 4 characters per token.
Maximum allowed characters in a prompt. 0 means no character limit (only token limit applies).
Action when prompt exceeds size limits:
deny: Reject the requestalert: Log alert and allow request
HTTP Client Configuration
Configure connection pooling and timeouts for upstream API requests.Connection timeout in milliseconds. Minimum 1ms, defaults to 5000 if set to 0.
Total request timeout in milliseconds. 0 disables timeout (recommended for streaming).
How long to keep idle connections in the pool before closing them
Global default for maximum idle connections per upstream host
Per-upstream connection pool size overrides. Keys can be:
openaianthropicbinancecustom.<name>(e.g.,custom.github)
Dashboard Configuration
Number of days of spend history to display in the dashboard
Alert Configuration
Control which events trigger alerts and how long they’re retained.Alert when prompt drift is detected
Alert when prompts exceed size limits
Alert when reaching budget warning threshold
Alert when daily budget is exceeded
Alert when on-chain transactions are denied
Alert when rate limits are triggered
Alert on unusual request volume spikes
Alert when a new API endpoint is accessed for the first time
Alert on requests at unusual times
Alert when high-severity actions (withdrawals, destructive operations) are blocked
Number of days to retain alert records in the database
Binance Configuration
See Binance Configuration for detailed documentation.Enable the Binance trading proxy
Binance API base URL. Can be changed for testnet.
Maximum USD value per order
Daily trading volume limit in USD
Allow
DELETE /api/v3/openOrders (cancels all open orders). Blocked by default.Binance recvWindow parameter for request validity. Must be ≤ 60000ms.
Custom Services Configuration
See Custom Services for detailed documentation.Define custom API proxies.
<name> can be any identifier (e.g., github, stripe).On-Chain Configuration
Configure transaction limits and smart contract permissions.Enable on-chain transaction proxying and policy enforcement
Allowed blockchain chain IDs (e.g.,
[1, 137, 42161] for Ethereum, Polygon, Arbitrum)Maximum USD value per transaction
Daily spending limit in USD for on-chain transactions
Minimum seconds between transactions
Maximum allowed slippage in basis points (50 = 0.5%)
Maximum leverage multiplier for leveraged positions
How long signed permits remain valid (5 minutes default)
Require permit signatures to include policy version hash
Address of the permit verifying contract
Whitelisted addresses per chain ID