Most configuration is managed from the Settings panel in the dashboard. Open it from the sidebar — every setting has a description and type-safe controls. Changes take effect immediately.
The Settings panel is organized into sections:
| Section | What you configure |
|---|---|
| Overview | Quick status and system info |
| Imports | Import settings from another instance |
| Chat | Session timeout, autopilot default, bot name |
| Display | Themes and color theme (14 themes with dark/light variants) |
| Voice | STT provider, TTS voice and speed |
| Notifications | Notification preferences |
| Shortcuts | Keyboard shortcut customization |
| Skills | Skill loading behavior |
| Channels | Slack, Discord, Telegram, Teams, Webex, WeCom, WeChat credentials and settings |
| Browser | Browser automation settings |
| Computer Use | Desktop automation enable/disable |
| Instances | Multi-instance management |
| Security | Sandbox mode, denied commands, governance |
| Developer | Developer-facing options |
| About | Version info and updates |
For headless environments or scripting, use kirocrew config:
kirocrew config get # print full config kirocrew config get agent.sandbox # print one key kirocrew config set dashboard.bot_name "X" # set a key kirocrew config edit # open in $EDITOR
Setting a value auto-triggers a session pool restart so the change takes effect immediately.
Settings persist to ~/.kiro/crew/config.json. You can edit this file directly if you prefer — the format is standard JSON with missing keys falling back to defaults.
{ "agent": { "provider": "acp", "approval_mode": "interactive", "sandbox": "auto" }, "session": { "timeout_secs": 1800, "pool_size": 2 }, "dashboard": { "bot_name": "Crew" } }
14-theme color system with dark and light variants. Change from Settings → Display → Color Theme in the dashboard. You can also create custom themes or import themes shared by others.
Channel tokens live in ~/.kiro/crew/.env (not in config.json) for security. Configure them from the dashboard's Settings → Channels panel, or set them manually:
SLACK_APP_TOKEN=xapp-… SLACK_BOT_TOKEN=xoxb-… KIROCREW_OWNER_ID=U0… DISCORD_BOT_TOKEN=… TELEGRAM_BOT_TOKEN=… WECOM_BOT_ID=… WECOM_SECRET=…
The file is enforced at mode 600 (owner-only read/write).
Two environment variables control runtime behavior that can't live in config.json:
| Variable | Default | Purpose |
|---|---|---|
KIROCREW_HOME | ~/.kiro/crew | Data directory — where config, memory, and credentials live |
KIROCREW_PORT | 5476 | Port the gateway binds to |
Set these before starting the gateway. Override the port per-invocation with kirocrew gateway --port <n>.
All persistent state lives under ~/.kiro/crew/ (or wherever KIROCREW_HOME points). See the Installation page for the full directory layout.
Configuration