Documentation Index
Fetch the complete documentation index at: https://docs.simplefunctions.dev/llms.txt
Use this file to discover all available pages before exploring further.
SF settings live in three places:
- CLI config:
~/.config/simplefunctions/config.json — local-only.
- Server config:
portfolio_config, heartbeat_config, user_settings tables — server-side, per-user.
- Per-resource config: thesis-level kill rules, watch-rule conditions, webhook endpoint metadata.
CLI config
~/.config/simplefunctions/config.json:
| Key | Type | Purpose |
|---|
apiKey | string | SF API key (sf_live_...) |
apiUrl | string | Override base URL (default https://simplefunctions.dev) |
kalshiKeyId | string | Kalshi key id |
kalshiPrivateKeyPath | string | Path to Kalshi PEM file |
polymarketWallet | string | Polymarket wallet address |
dataApiKey | string | sf-terminal Data API key (sft_live_...) |
defaultModel | string | Default model for sf agent |
Read with sf status --json. Edit with sf setup or directly.
Portfolio config (portfolio_config)
Per-user, scoped to autopilot.
| Field | Default | Purpose |
|---|
enabled | false | Master on/off |
executionMode | dry-run | dry-run / live / halted |
cronExpression | 0 7,19 * * * | Schedule |
decisionModel | anthropic/claude-sonnet-4.6 | LLM for tick |
maxTotalExposureCents | 300000 | Risk gate |
maxPerMarketCents | 100000 | Risk gate |
maxDailyLossCents | 15000 | Risk gate |
maxPositions | 20 | Risk gate |
minBalanceCents | 10000 | Risk gate |
maxOrdersPerTick | 3 | Risk gate |
maxSingleOrderCents | 20000 | Risk gate |
cooldownAfterLossTicks | 4 | Risk gate |
maxDrawdownHaltCents | 50000 | Auto-halt threshold |
drawdownWarnCents | 30000 | Soft warn threshold |
excludeCategories | ['sports','esports'] | Categories to skip |
minAdjIy | 100 | Minimum adjusted IY% |
maxLas | 0.15 | Maximum LAS |
minTauDays | 3 | Minimum days to expiry |
crossVenuePairsEnabled | false | Use cross-venue pairs in decisions |
Update via sf portfolio config <key> <value> or PATCH /api/portfolio/config.
Heartbeat config (per-thesis)
| Field | Default | Purpose |
|---|
cadenceHours | 4 | Active monitor cadence |
dormantCadenceHours | 12 | Fallback when no signals |
lowConfidenceSinceAt | null | Sustained-low detection start |
killConditions | [] | Structured triggers to kill |
Watch rule fields
| Field | Purpose |
|---|
condition | price_above / price_below / econ_release / gov_action / semantic_match |
threshold | Numeric threshold for price conditions |
windowSeconds | Dedupe window |
channel | email / webhook / telegram |
endpointId | Webhook endpoint to deliver to |
Webhook endpoint fields
| Field | Purpose |
|---|
url | HTTPS URL (HTTP rejected) |
label | Human label for the dashboard |
events | Subscribed event types (default: all) |
secret | Signing secret (server-issued) |
state | active / degraded / paused |
See Env vars for runtime environment.