Reference
Every environment variable Laraclaw reads, with its default and what it controls.
Introduction
This is the flat reference for every LARACLAW_* environment variable Laraclaw reads. No prose, no tutorials — just defaults, requirements, and where to read more.
A few conventions:
- Required means the package will fail to boot, or the feature will not work, without the value.
- Defaults are what the package falls back to when the variable is unset.
- See links to the page where the setting is explained in context. Click through whenever a one-liner doesn't tell you enough.
If you're looking for the why and not just the what, Customization and the per-feature pages have the conceptual coverage.
Core
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_USER_MODEL | App\Models\User | No | Fully-qualified user model class | Introduction |
LARACLAW_ADMIN_USER_ID | — | Yes if Telegram or Slack are enabled | The single owner user ID | Introduction |
LARACLAW_WEBHOOK_RATE_LIMIT | 20 | No | Inbound messages per minute. 0 disables | Customization |
LARACLAW_LOG_AGENT_REQUESTS | false | No | Log every agent prompt and response | Customization |
Filesystem and Attachments
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_ALLOWED_DISKS | local | No | Comma-separated list of disks the File and Image Manager can see | File Manager |
LARACLAW_ATTACHMENTS_DISK | local | No | Disk used for inbound and outbound attachment folders | Attachments |
LARACLAW_INCOMING_ATTACHMENTS_PATH | inbound | No | Folder name for inbound files within the attachments disk | Attachments |
LARACLAW_OUTGOING_ATTACHMENTS_PATH | outbound | No | Folder name for outbound files within the attachments disk | Attachments |
Memory
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_MEMORY_ENABLED | false | No | Turn on RAG memory across conversations | Memory |
LARACLAW_MEMORY_MAX_RESULTS | 5 | No | Maximum chunks returned per MemoryManager call | Memory |
LARACLAW_MEMORY_MIN_SIMILARITY | 0.5 | No | Minimum cosine similarity for a chunk to be included | Memory |
The Agent Folder
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_INSTRUCTIONS_PATH | base_path('laraclaw/instructions.md') | No | Base system prompt file. Falls back to the packaged prompt when missing | Customization |
LARACLAW_PERSONAS_PATH | base_path('laraclaw/personas') | No | Directory containing persona Markdown files | Personas |
LARACLAW_PERSONAS_DEFAULT | — | No | Filename (without .md) of the default persona. Falls back to default.md when unset | Personas |
LARACLAW_SKILLS_PATH | base_path('laraclaw/skills') | No | Directory containing skill subfolders | Skills |
Tools
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_TTS_ENABLED | true | No | Enable the Text-to-Speech tool | Text to Speech |
LARACLAW_TTS_VOICE | default-female | No | Default voice ID for TTS | Text to Speech |
LARACLAW_IMAGE_DRIVER | imagick | No | Image driver: imagick or gd | Image Manager |
Your own tools are listed in config/laraclaw.php rather than in .env, since they are class names:
'tools' => [
'custom' => [
App\Laraclaw\Tools\WeatherTool::class,
],
],
See Adding Custom Tools.
Tinker
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_TINKER_ENABLED | false | No | Enable the Tinker tool (PHP eval, with shell access via Process::run) | Tinker |
Read Database
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_READ_DATABASE_ENABLED | false | No | Enable the Read Database tool | Read Database |
LARACLAW_READ_DATABASE_USERNAME | — | MySQL and Postgres only | Username for the read-only DB user. Set by the wizard. | Read Database |
LARACLAW_READ_DATABASE_PASSWORD | — | MySQL and Postgres only | Password for the read-only DB user. Set by the wizard. | Read Database |
LARACLAW_READ_DATABASE_TIMEOUT_SECONDS | 10 | No | Per-query timeout for MySQL and Postgres. 0 disables the cap. | Read Database |
Headless Browser
Larapanda reads its own LARAPANDA_* env vars directly; the table below covers the ones the wizard touches. See the larapanda config for the full list (vendor/ferdiunal/larapanda/config/larapanda.php).
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_BROWSER_ENABLED | false | No | Enable the Headless Browser tool. Also needs composer require ferdiunal/larapanda. | Headless Browser |
LARAPANDA_RUNTIME | cli | No | auto, cli, or docker. Wizard sets auto. | Headless Browser |
LARAPANDA_BINARY_PATH | — | CLI mode only | Absolute path to the Lightpanda binary. | Headless Browser |
LARAPANDA_AI_OBEY_ROBOTS | true | No | Respect robots.txt when navigating. | Headless Browser |
LARAPANDA_AI_SESSION_TTL | 300 | No | Inactivity TTL for in-memory browser sessions, in seconds. | Headless Browser |
Calendar
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_CALENDAR_DRIVER | — | Yes if calendar enabled | google or apple | Calendar |
LARACLAW_GOOGLE_CREDENTIALS_JSON | base_path('oauth-credentials.json') | Google only | Path to the Google OAuth client credentials JSON | Calendar |
LARACLAW_GOOGLE_TOKEN_JSON | base_path('oauth-token.json') | Google only | Path where the refreshed Google access token is stored | Calendar |
LARACLAW_GOOGLE_CALENDAR_ID | — | Google only | Calendar ID to operate on (often primary) | Calendar |
LARACLAW_APPLE_CALDAV_SERVER | https://caldav.icloud.com | Apple only | CalDAV server URL | Calendar |
LARACLAW_APPLE_CALDAV_USERNAME | — | Apple only | Apple ID | Calendar |
LARACLAW_APPLE_CALDAV_PASSWORD | — | Apple only | App-specific password | Calendar |
LARACLAW_APPLE_CALDAV_CALENDAR | — | Apple only | Calendar name to operate on | Calendar |
Telegram Connector
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_TELEGRAM_ENABLED | false | No | Enable the Telegram connector | Telegram |
LARACLAW_TELEGRAM_TOKEN | — | Yes if enabled | Bot token from BotFather | Telegram |
Slack Connector
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_SLACK_ENABLED | false | No | Enable the Slack connector | Slack |
LARACLAW_SLACK_SIGNING_SECRET | — | Yes if enabled | Used to verify webhook signatures | Slack |
LARACLAW_SLACK_BOT_TOKEN | — | Yes if enabled | xoxb-... bot token | Slack |
LARACLAW_SLACK_BOT_USER_ID | — | Yes if enabled | The bot user's Slack ID, used for mention detection | Slack |
Email Connector
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_EMAIL_ENABLED | false | No | Enable the Email connector | |
LARACLAW_EMAIL_VERIFY_SENDER_DKIM_AND_SPF | true | No | Drop messages that fail DKIM or SPF | |
LARACLAW_SMTP_HOST | — | Yes if enabled | Outbound SMTP host | |
LARACLAW_SMTP_PORT | 587 | No | Outbound SMTP port | |
LARACLAW_SMTP_ENCRYPTION | tls | No | tls or ssl | |
LARACLAW_SMTP_USERNAME | — | Yes if enabled | SMTP username | |
LARACLAW_SMTP_PASSWORD | — | Yes if enabled | SMTP password | |
LARACLAW_SMTP_FROM_ADDRESS | — | Yes if enabled | From: address on outgoing replies | |
LARACLAW_SMTP_FROM_NAME | — | No | Display name on outgoing replies | |
LARACLAW_IMAP_HOST | — | Yes if enabled | Inbound IMAP host | |
LARACLAW_IMAP_PORT | 993 | No | Inbound IMAP port | |
LARACLAW_IMAP_ENCRYPTION | ssl | No | ssl or tls | |
LARACLAW_IMAP_USERNAME | — | Yes if enabled | IMAP username | |
LARACLAW_IMAP_PASSWORD | — | Yes if enabled | IMAP password | |
LARACLAW_IMAP_MAILBOX | default | No | imapengine mailbox name |
API Connector
| Variable | Default | Required | Description | See |
|---|---|---|---|---|
LARACLAW_API_ENABLED | false | No | Enable the HTTP API connector | API |