The LeadMagic CLI stores configuration in a JSON file and supports environment variable overrides.
Config File Location
| Location | Path | When Used |
|---|
| Project-local | .leadmagic/config.json | When a .leadmagic/ directory exists in the current or parent directory |
| Global | ~/.leadmagic/config.json | Fallback when no project-local directory is found |
The CLI checks for a project-local .leadmagic/ directory first, walking up the directory tree. If none is found, it uses the global directory at ~/.leadmagic/.
Initialize a project-local directory:
Initialize the global directory:
Configuration Keys
Manage config values with lm config:
lm config show # Show all settings
lm config get apiKey # Get a specific value
lm config set apiKey # Set a value (prompts securely for sensitive keys)
User Config Keys
These keys can be set via lm config set <key> <value>:
| Key | Type | Description | Default |
|---|
apiKey | string | LeadMagic API key (lm_ prefix) | — |
baseUrl | string (URL) | API base URL | https://api.leadmagic.io |
dbPath | string | Path to database file | ~/.leadmagic/data.db |
dbMemoryLimit | string | Database memory limit (e.g., 2GB, 512MB) | — |
dbThreads | number | Number of database threads (1–256) | — |
aiProvider | "gateway" | AI provider | gateway |
aiModel | string | AI model identifier | anthropic/claude-sonnet-4.6 |
Internal Config Keys
These are managed automatically by the CLI:
| Key | Type | Description |
|---|
authToken | string | OAuth access token (from lm login) |
refreshToken | string | OAuth refresh token |
authTokenExpiresAt | number | Token expiry timestamp (ms) |
userInfo | object | Cached user info (email, name) |
workerBaseUrl | string | AI Gateway URL |
outputDir | string | Export output directory |
scrollSpeed | number | Scroll speed (1–10) |
theme | string | Color theme name |
plainTextMessages | boolean | Render messages as plain text |
acceptedTermsAt | string | ISO timestamp of terms acceptance |
dbQueryTimeout | number | SQL query timeout (ms) |
dbMaxRows | number | Max rows returned from queries |
Environment Variables
| Variable | Overrides | Description |
|---|
LEADMAGIC_API_KEY | apiKey | API key (takes precedence over config file) |
LM_WORKER_URL | workerBaseUrl | AI Gateway URL |
LM_DEBUG | — | Set to 1 to enable debug logging |
Database Configuration
The CLI uses a local embedded database for storing loaded data, query results, and metadata.
lm config set dbPath /path/to/custom.db
lm config set dbMemoryLimit 4GB
lm config set dbThreads 8
Database management commands:
| Command | Description |
|---|
lm db init | Initialize database and run migrations |
lm db stats | Show database statistics and memory usage |
lm db vacuum | Compact database, reclaim space |
lm db analyze | Update query optimizer statistics |
lm db repair | Fix corruption and re-run migrations |
lm db reset | Drop all tables and data |
lm db unlock | Release database lock from stale processes |
lm db reset is destructive and cannot be undone. Exported files in .leadmagic/export/ are preserved.
AI Model Selection
Select a model interactively:
Or set it directly:
lm config set aiModel claude-sonnet
List available models:
lm config list-models
lm config list-models -p anthropic
In chat, switch models on the fly:
Themes
The CLI supports four color themes:
| Theme | Description |
|---|
dracula | Dark purple theme (default) |
tokyo-night | Dark blue theme |
nord | Arctic blue theme |
catppuccin | Warm pastel theme |
Set a theme:
lm config set theme tokyo-night
Or switch in chat:
Export Directory
All enrichment, validation, and export results are saved to timestamped subdirectories:
.leadmagic/export/
├── 20260306-143022-email-finder/
│ └── contacts_enriched.csv
├── 20260306-151045-validation/
│ └── campaign_validated.csv
└── 20260306-160812-enrich/
└── leads_enriched.csv
Each operation creates a new timestamped directory to prevent overwriting previous results.
Set a custom output directory:
lm config set outputDir /path/to/exports
Interactive Configuration
Open the full interactive configuration UI:
This provides a terminal-based interface for browsing and editing all settings. Aliases: lm config ui, lm config tui.
Next Steps