Skip to content
TeamLaboration
Docs / Configuration

Sensible defaults. Tunable if you want.

Most fields are editable from the dashboard, the Settings tab for models and behaviour, the Schedule tab for timing. The config file is human-readable JSON in your data directory, handy for backup or syncing across machines.

Where things live

Windows
  • Config, %APPDATA%\TeamLaboration\config.json
  • Database, %APPDATA%\TeamLaboration\teamlaboration.db
  • Logs, %APPDATA%\TeamLaboration\logs\agent.log
  • App, %LOCALAPPDATA%\TeamLaboration\
macOS
  • Config, ~/Library/Application Support/TeamLaboration/config.json
  • Database, ~/Library/Application Support/TeamLaboration/teamlaboration.db
  • Logs, ~/Library/Application Support/TeamLaboration/logs/agent.log
  • App, /Applications/TeamLaboration.app

The database uses SQLite WAL mode so the scheduler thread and the web server thread can read and write at the same time without blocking each other. Don't delete teamlaboration.db-wal or -shm sidecar files while the daemon is running.

config.json

The full schema. Every field is optional, missing keys fall back to defaults. Edits via Settings are written back here on save.

{
  "ai_enabled": true,
  "poll_interval_seconds": 300,
  "sessions_page_size": 50,
  "summarization": {
    "model": "haiku",
    "interval_hours": 4,
    "max_per_trigger": 0
  },
  "report": {
    "model": "sonnet",
    "day_of_week": 4,
    "time_of_day": "17:00"
  },
  "week_start_day": 0,
  "output_dir": null,
  "port": 7842,
  "exclude_teamlaboration_mcp_sessions": true,
  "notifications": {
    "file": { "enabled": true, "path": "%USERPROFILE%\\Documents\\TeamLaboration" }
  },
  "projects": {
    "include_all": true,
    "exclude": []
  },
  "updates": {
    "check_enabled": true
  }
}

Fields, one by one

ai_enabled, boolean, default true

When false, the daemon collects sessions and tracks them in the database but never runs the claude CLI itself. You then drive summarization manually from Claude Code via the MCP slash commands, handy when you'd rather not have a background service spend your plan limits. See MCP.

poll_interval_seconds, default 300

How often the collector walks ~/.claude/projects/. Five minutes is fine for everyone, Claude Code writes files incrementally, so a longer poll won't miss anything, it just delays detection. Don't go below 30 seconds.

sessions_page_size, default 50

How many sessions the Sessions view shows per page (1–500). The list itself is capped to the last 28 days. Editable from the Settings tab.

summarization.model, default "haiku"

Which Claude model the claude CLI uses for per-session summaries. Defaults to Haiku, fast, cheap on your plan limits, and plenty for short session summaries. Pick from Haiku / Sonnet / Opus on the Settings tab; a larger model gives richer narratives at a higher cost against your subscription.

summarization.interval_hours, default 4 · Schedule tab

How often the daemon summarizes pending sessions by shelling out to the local claude CLI, plus a catch-up run at startup. Minimum 1 hour. Runs are bounded-concurrency and periodic (not constant) to stay light on your plan limits.

summarization.max_per_trigger, default 0 · Schedule tab

Cap on how many pending sessions are summarized in a single run. 0 means no limit. Raise the cap's effect by setting a positive number when you want to spread a large backlog across several runs instead of one burst.

report.model, default "sonnet"

Which Claude model rolls up the weekly report. Defaults to Sonnet, the weekly narrative benefits from a stronger model than the per-session summaries. Pick from Haiku / Sonnet / Opus on the Settings tab.

report.day_of_week / report.time_of_day · Schedule tab

When the automatic weekly rollup fires. day_of_week is 0=Mon … 6=Sun (default Friday), time_of_day is a local 24h "HH:MM" (default 17:00). You can always click Generate for current week on the Schedule tab to run it sooner.

week_start_day, 0=Mon, 6=Sun

Where the weekly window begins. Default is Monday (ISO week). Affects which sessions roll into which weekly report.

exclude_teamlaboration_mcp_sessions, boolean, default true

When true, Claude Code sessions that invoke TeamLaboration's own MCP tools (e.g. /summarize_pending, /weekly_report) are dropped at collection, so a session about summarizing never shows up as a summary of its own.

port, default 7842

The local HTTP port. On startup the daemon tries port, then port+1, then port+2, so a busy 7842 falls back to 7843 or 7844. The actual bound port is logged. Bound to 127.0.0.1 only, never your LAN.

output_dir, file output path

When set, weekly reports are mirrored to this folder as Markdown and HTML. Useful for committing reports to a personal journal repo, or for syncing via Dropbox / iCloud / Drive.

notifications.file, enabled + path

Weekly reports are written to disk as Markdown and HTML. On by default. path overrides where they land, leave it blank to fall back to output_dir, then to Documents/TeamLaboration. Point it at a synced folder (Dropbox / iCloud / Drive) to mirror reports across machines.

projects.include_all / exclude

By default every project under ~/.claude/projects/ is collected. Add project directory names to exclude to skip them, useful if a particular project is sensitive or experimental and you don't want it in your weekly report.

updates.check_enabled, boolean, default true

When true, the app checks the public releases repo once a day and shows an in-dashboard banner when a newer version is out. Turn it off on the Settings tab; you can still Check now manually.

Retention

The Solo tier keeps four weeks of data. On every daemon start, a purge job runs:

  • · Summaries and weekly reports, deleted after 28 days.
  • · Raw session ledger, the lightweight session row (file path, mtime, status, no content) is deleted after 56 days.

Export reports as JSON or Markdown from the dashboard before they age out if you want to keep them. The raw Claude Code logs in ~/.claude/projects/ are never modified or copied by TeamLaboration, only read.

Debug logging

Set TEAMLABORATION_DEBUG=1 in your environment before starting the daemon to enable verbose logs. The agent log rotates at 10 MB with five backups, so a noisy debug session won't fill your disk.

Disabling autostart

The agent registers a Windows Task Scheduler entry or a macOS LaunchAgent the first time it runs. To unregister it:

teamlaboration-agent --uninstall

This removes the autostart entry only, your config, database, and the installed app are untouched. To skip autostart for one run: teamlaboration-agent --no-autostart.