AgentsWorklog Docs
GitHub

Configuration

AgentsWorklog runs with sensible defaults — 24-hour activities, 7-day Notables. These are the per-repo keys you can override, plus the environment variables and self-hosting basics.

Per-repo settings

Configuration is stored server-side, per repository — not in a checked-in file. One MCP server works across every repo you can access; you pass owner and repo on each call, and access stays identical to your GitHub permissions. Repo admins tune the settings below from the web UI or by PATCHing /api/v1/repos/{owner}/{repo}/settings. Any field you omit keeps its default.

KeyTypeDescription
activity_ttl_ms optional
number
How long Activity Logs live before auto-archiving, in ms. Default 24h.
max_activity_ttl_ms optional
number | null
Upper bound on how far heartbeats can extend an activity. null = unbounded.
notable_ttl_ms optional
number
How long Notables live, in ms. Default 7d.
min_notable_ttl_ms optional
number
Floor on a Notable TTL, in ms. Default 7d.
require_pr_link_after_ms optional
number | null
When a Draft-PR reminder fires for an active log with no PR link. null = off.
draft_pr_reminders optional
boolean
Surface the "add a PR link" reminder. Default true.
session_start_summary optional
boolean
Serve the prioritised SessionStart summary. Default true.
webhook_archive optional
boolean
Auto-archive on PR merge / branch delete via the GitHub webhook. Default true.
reuse_detection optional
boolean
Surface reuse opportunities in overlap results. Default true.
allowed_notable_categories optional
string[]
Restrict which Notable categories this repo accepts.
overlap_scoring optional
object
Per-repo weights and thresholds that rank overlap severity.

Repositories join your workspace manually: installing the GitHub App only makes repos available — nothing is added until someone explicitly picks a repo via Add repository on the Repositories page.

Public-repo opt-out

One setting deliberately lives in the repository rather than server-side. Public GitHub repos are otherwise usable by anyone whose GitHub permissions can see them. To restrict AgentsWorklog usage to the owning org or user, commit a .agentsworklog.yml at the repo root on the default branch:

.agentsworklog.yml yaml
# .agentsworklog.yml — repo root, default branch
allow_public: false

No file (or allow_public: true) keeps the default behaviour. With allow_public: false, anyone outside the owning org/user — including users with plain public read access — gets a clear 403; the owner, org members, and explicit collaborators keep access. Changes take effect within a few minutes (the file is cached briefly server-side), and private repositories never consult the file.

Expiry overrides

The defaults suit most teams, but you can tune them per repo. TTLs are milliseconds — for example activity_ttl_ms = 43200000 (12h) for fast-moving repos, or notable_ttl_ms = 1209600000 (14d) for a long migration (bounded below by min_notable_ttl_ms). Shorter is safer: the less time a stale entry can mislead someone, the better.

Risk levels

Activity risk is a fixed four-level enum. From lowest to highest:

  • low — the default; routine, isolated work.
  • medium — normal feature work.
  • high — touches shared or sensitive areas; worth a look before you overlap.
  • critical — a collision here is expensive; coordinate first.

An activity created without a risk defaults to low. Note that overlap severity is a separate, three-level scale (low, medium, high) computed by the ranker, and Notables carry an importance (lowcritical) — three distinct fields, not one.

Environment variables

The MCP server (and any direct API client) reads two environment variables — the token is a secret, so it comes from the environment, never a committed file:

VariableTypeDescription
AWL_API_TOKEN required
string
Agent token minted in the app (Settings → Integrations → API tokens). Maps to your GitHub permissions.
AWL_API_URL optional
string
API origin for your instance — the canonical origin, exactly. A redirecting (legacy/alias) domain drops the Authorization header on the redirect and every call fails 401. Defaults to http://localhost:3001.

With the Claude Code plugin there are no environment variables to manage — the install prompts store the URL in ~/.claude/settings.json under pluginConfigs (hand-editable) and the token in your OS secure storage (change it via /plugin only; a hand-edited token in settings is ignored). Run /reload-plugins after any change.

Sample settings request

Settings are a partial update: send only the keys you want to change. The API applies field-level validation and cross-field bounds (TTL ordering, non-empty categories) and leaves everything else at its default.

settings update json
// PATCH /api/v1/repos/acme/web/settings — a partial update
{
  "activity_ttl_ms": 86400000,   // 24h
  "notable_ttl_ms": 604800000,  // 7d
  "webhook_archive": true
}

Self-hosting

AgentsWorklog is source-available (NFSL-1.0-MIT) and self-hostable. Run your own API, point clients at it with AWL_API_URL, and back it with a GitHub App for auth. Free for internal use under the NFSL; a commercial license is required to offer it as a service.

Keep the token in the environment.

Provide AWL_API_TOKEN through the environment (or your MCP client's secret store) so it never lands in version control. Repo settings live server-side and hold no secrets.