Configuration
Configuration reference
The structure of data/settings.json and what each section controls.
File location
- Windows:
%APPDATA%/Sales Claw/data/settings.json - macOS:
~/Library/Application Support/Sales Claw/data/settings.json - Linux:
~/.config/Sales Claw/data/settings.json
Top-level shape
json
{
"company": { ... },
"aiCli": { ... },
"sendPolicy": { ... },
"exclusions": { ... },
"ports": { ... },
"templates": { ... }
}company — your profile
Used to fill form fields and to compose signatures.
json
{
"company": {
"name": "Acme, Inc.",
"contactName": "Jane Doe",
"email": "jane@acme.example",
"phone": "+1 555-555-5555",
"url": "https://acme.example",
"signature": "Best,\nJane / Acme",
"complianceFooter": "This is a one-time outreach. Reply STOP to opt out."
}
}aiCli — which AI to call
json
{
"aiCli": {
"primary": "claude", // "claude" | "codex" | "gemini"
"claude": { "model": "claude-opus-4-7" },
"codex": { "model": "gpt-5.5-instant" },
"gemini": { "model": "gemini-3.1-pro" },
"perTaskOverrides": {
"draftMessage": "claude",
"industryClassify": "codex"
}
}
}sendPolicy — guardrails before submission
json
{
"sendPolicy": {
"requireHumanApproval": true,
"screenshotBeforeSend": true,
"captchaBehavior": "stop", // "stop" | "manual"
"rateLimitPerMinute": 6,
"rateLimitPerDay": 300,
"requireComplianceFooter": true
}
}exclusions — never contact these
json
{
"exclusions": {
"domains": ["competitor.com"],
"industries": ["adult", "gambling"],
"tags": ["do-not-contact"],
"history": "auto" // automatically excludes prior contacts
}
}templates — per-industry copy
json
{
"templates": {
"saas": { "tone": "direct", "valueAngle": "developer-velocity" },
"ecommerce": { "tone": "warm", "valueAngle": "conversion" }
}
}Editing safely
Edit through the in-app Settings UI whenever possible — it validates the schema before write. If you edit the JSON directly, keep a backup and restart the app to reload.