24 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.
Summarize code activity
github.activity_summaryread
The whole picture for a window in one call: commits, lines added and removed, the repositories that moved, every contributor's totals, and the AI review scores for that period. Every line total carries how many commits it was measured from, because GitHub's commit list has no line counts and the mirror fills them in progressively — read the two together or you will under-report. Read-only from the local mirror; costs nothing and generates nothing.
Parameters
Field
Type
Required
Description
period
"rolling" | "yesterday"
optional
Use yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezone
string
optional
IANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
days
integer
optional
How many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
from
string (date-time)
optional
Start of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
to
string (date-time)
optional
End of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
Over MCP the same operation is the tool github_activity_summary at https://app.chirply.io/api/mcp, same bearer token, same input.
Connect another GitHub account
github.add_accountwriteadmin only
Connect an ADDITIONAL GitHub account alongside the ones already linked, using a personal access token belonging to that GitHub user. This is the fix when repositories are missing and no permission change reveals them: a token can only ever reach what its own GitHub user can see, so a second account needs a second token. The token is verified against GitHub before it is stored and is encrypted with AES-256-GCM; it is never returned. Give each account a short label so it can be told apart later. Costs nothing.
Parameters
Field
Type
Required
Description
label
string
required
Short name for this account, e.g. 'tier5dev'. Used to tell connected accounts apart; reusing a label replaces that account's token.
token
string
required
A GitHub personal access token belonging to the account you are adding, with the repo and read:org scopes. Verified against GitHub before it is stored, then encrypted.
org
string
optional
Restrict this account to one GitHub organization by name. Leave it out to follow every repository the token can reach, which is usually what you want.
Over MCP the same operation is the tool github_add_account at https://app.chirply.io/api/mcp, same bearer token, same input.
Check remote branch indexing
github.branch_backfill_statusread
Read saved indexing progress, inspected branches, pending repositories and failures for one account-scoped backfill, or the latest account-wide job when both ID and repositories are omitted. An optional repository selection matches only that exact scoped job; an explicit ID without repositories may read any job in this account. Returns not_started if no job matches the requested scope. Makes no GitHub requests and starts no work. Partial or unfinished indexing is unknown coverage, not zero work.
Parameters
Field
Type
Required
Description
id
string (uuid)
optional
Backfill ID returned by github.start_branch_backfill. Omit to read the latest job matching the repository selection, or the latest account-wide job when no selection is supplied. Returns not_started if that scope has no job.
repositories
string[]
optional
Restrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.
Over MCP the same operation is the tool github_branch_backfill_status at https://app.chirply.io/api/mcp, same bearer token, same input.
Build the code activity digest
github.daily_digestwrite
Produce and save the report for a window — what shipped, in which repositories, written by whom, and how the code scored — with a plain-English summary a non-engineer can read. Optionally audits some not-yet-reviewed commits first so the quality section rests on real reviews; each audit is a model call billed to this account's own OpenRouter key, and `review_commits` is the spend control. The figures are computed and saved whether or not AI is connected — without it the report is the numbers plus a factual summary rather than a narrative. Re-running a window replaces that window's saved digest.
Parameters
Field
Type
Required
Description
period
"rolling" | "yesterday"
optional
Use yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezone
string
optional
IANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
days
integer
optional
How many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
from
string (date-time)
optional
Start of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
to
string (date-time)
optional
End of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
review_commits
integer
optional
Audit up to this many not-yet-reviewed commits from the window before summarizing. Each one is a model call billed to this account's OpenRouter key. 0 uses only reviews that already exist. Default: 0
Over MCP the same operation is the tool github_daily_digest at https://app.chirply.io/api/mcp, same bearer token, same input.
Open a commit
github.get_commitread
Fetch one stored commit with its repository, author, line counts and its AI code review if one has been generated. Read-only from the local mirror; costs nothing and generates nothing — use github.review_commit to produce a review that doesn't exist yet.
Over MCP the same operation is the tool github_get_commit at https://app.chirply.io/api/mcp, same bearer token, same input.
Link teammate
github.link_memberwriteadmin only
Record a manager-confirmed link between a GitHub username and a current team member, including usernames with no synced commits yet. Existing commits are re-pointed to the identity. This changes work attribution; confirm the username belongs to this person. It does not verify GitHub ownership, grant repository access, send messages or cost money.
Parameters
Field
Type
Required
Description
identity_id
string (uuid)
optional
An existing GitHub identity id from github.list_identities. Supply this or login, not both.
login
string
optional
GitHub username to link, even before its first synced commit. Supply this or identity_id. An existing link to another teammate must be reviewed and changed using identity_id.
user_id
string (uuid)
required
The team member's Chirply user id. Must already be a member of this account.
Over MCP the same operation is the tool github_link_member at https://app.chirply.io/api/mcp, same bearer token, same input.
List connected GitHub accounts
github.list_accountsread
List every GitHub account this Chirply account has connected, with the GitHub login each token belongs to and how many repositories it reaches. Read-only; costs nothing. Worth checking whenever a repository seems missing: a personal access token only reaches what ITS OWN GitHub user can see, so work living under a second GitHub account is invisible until that account is connected too — no scope change on the first token will ever reveal it.
Over MCP the same operation is the tool github_list_accounts at https://app.chirply.io/api/mcp, same bearer token, same input.
List commits
github.list_commitsread
List stored commits, newest first, with author, message, line counts and whether an AI review exists. Filter by repository, by GitHub login, or to a time window. Merge commits are included but flagged — their diff is the whole branch they bring in, so they are excluded from every total this integration reports. Read-only from the local mirror; costs nothing.
Parameters
Field
Type
Required
Description
repository_id
string (uuid)
optional
Only commits in this repository.
author_login
string
optional
Only commits by this GitHub login (case-insensitive), e.g. 'octocat'.
since
string (date-time)
optional
Only commits at or after this ISO 8601 timestamp.
until
string (date-time)
optional
Only commits before this ISO 8601 timestamp.
include_merges
boolean
optional
Include merge commits. Default false, matching how reports count. Default: false
Over MCP the same operation is the tool github_list_commits at https://app.chirply.io/api/mcp, same bearer token, same input.
List contributors
github.list_contributorsread
Who wrote code in a window, with commits, lines added and removed, repositories touched, and the Chirply team member each GitHub account is linked to (null when nobody has linked it yet). Merge commits are excluded so nobody is credited with a branch they merged. Read-only from the local mirror; costs nothing.
Parameters
Field
Type
Required
Description
period
"rolling" | "yesterday"
optional
Use yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezone
string
optional
IANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
days
integer
optional
How many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
from
string (date-time)
optional
Start of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
to
string (date-time)
optional
End of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
Over MCP the same operation is the tool github_list_contributors at https://app.chirply.io/api/mcp, same bearer token, same input.
List saved digests
github.list_digestsread
The code activity digests already built for this account, newest first, each with its window, its figures and its summary. Read-only from the local mirror; costs nothing and generates nothing — use github.daily_digest to build one that doesn't exist yet.
Over MCP the same operation is the tool github_list_digests at https://app.chirply.io/api/mcp, same bearer token, same input.
List GitHub accounts
github.list_identitiesread
Every GitHub account seen pushing to this workspace's repositories, and which Chirply team member each one is linked to. An unlinked account still appears in reports under its GitHub login — linking is what lets a report say a person's name. Read-only from the local mirror; costs nothing.
Parameters
Field
Type
Required
Description
unlinked_only
boolean
optional
Only accounts with no team member linked yet — the list a manager needs to work through. Default: false
Over MCP the same operation is the tool github_list_identities at https://app.chirply.io/api/mcp, same bearer token, same input.
View team GitHub usernames
github.list_member_profilesread
Read current account members and the GitHub usernames they entered in their own profiles. These are self-reported hints, not verified ownership; explicit manager mappings are listed separately by github.list_identities. Read-only, sends no messages and costs nothing.
Over MCP the same operation is the tool github_list_member_profiles at https://app.chirply.io/api/mcp, same bearer token, same input.
List repositories
github.list_repositoriesread
List the repositories mirrored for this account, most recently pushed to first, with whether each one is followed (followed repositories are the ones whose commits are ingested and counted in reports). Read-only from the local mirror; costs nothing and calls GitHub not at all.
Parameters
Field
Type
Required
Description
tracked_only
boolean
optional
Only the repositories being followed. Default false: everything the token can see. Default: false
query
string
optional
Match against the repository's full name, e.g. 'api' or 'acme/web'.
Over MCP the same operation is the tool github_list_repositories at https://app.chirply.io/api/mcp, same bearer token, same input.
Review a team member’s code
github.member_work_reportread
Resolve a Chirply member's linked GitHub logins or self-reported profile username, search default-branch commits across connected accounts, reconcile stored evidence, and aggregate up to 1,000 unique commits with independent stats-only batches, per-repository totals and up to 60 listed commit details plus bounded sample diffs. Also finds up to 20 authored pull requests updated in the window, with current diff snapshots for up to two, separating merged work from work in progress. All evidence is restricted to this account's tracked repositories, optionally narrowed by exact repository names without changing shared tracking. Selected searches use bounded repository batches; unsearched batches remain explicit partial coverage. PR snapshots may include older work and other contributors and are not added to daily line totals. The calling AI gives a concise scorecard and evidence-based light review; large workloads can skip patch review. Sends no messages, makes no model call, and modifies no repositories. Reports missing identity, partial coverage and search failures explicitly; line counts do not measure time or productivity. Also returns day_assessment, which decides in code whether a low-output flag against an expected working day is permitted: only gaps that could hide pushed code (a repository pushed during the window that no branch index, verified push webhook or live all-branch scan covers; unknown merge status; unsized commits) block it. Repositories without index or webhook coverage are checked live with read-only GitHub GraphQL requests: their last-push time, then this person's commits on every branch of any repository pushed during the window, while sampled or partial diffs are review limits that never suppress it.
Parameters
Field
Type
Required
Description
user_id
string (uuid)
required
The actual Chirply user ID of the person being reviewed, such as the user_id on their clock-out chat message.
period
"rolling" | "yesterday"
optional
Use yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezone
string
optional
IANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
days
integer
optional
How many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
from
string (date-time)
optional
Start of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
to
string (date-time)
optional
End of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
repositories
string[]
optional
Restrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.
diff_limit
integer
optional
Maximum commits whose file patches are sampled, within a shared time and 40,000-character budget. Use 0 for totals and delivery overview without downloading commit or PR patches. Scalar addition/deletion totals are collected separately; coverage and omitted detail counts are reported. Default: 5
Over MCP the same operation is the tool github_member_work_report at https://app.chirply.io/api/mcp, same bearer token, same input.
Push tracking status
github.push_tracking_statusread
Read durable repository webhook setup progress for this account: tracked repositories and current verification sweep's processed, active, unavailable and failed counts, recent setup errors and last received signed push. Counts restart during the hourly verification sweep. An active hook means GitHub confirmed its push subscription, not that delivery coverage is gap-free. Sends nothing, changes nothing and incurs no AI charge.
Over MCP the same operation is the tool github_push_tracking_status at https://app.chirply.io/api/mcp, same bearer token, same input.
Disconnect a GitHub account
github.remove_accountwriteconfirmadmin only
Disconnect one of the connected GitHub accounts by its label, deleting its stored token. Repositories and commits already mirrored through it are KEPT, so past reports keep their numbers — they simply stop updating. The first account's label is 'default'. Irreversible: the token cannot be recovered and has to be pasted again to reconnect.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
label
string
required
Which account to disconnect, from github.list_accounts.
Over MCP the same operation is the tool github_remove_account at https://app.chirply.io/api/mcp, same bearer token, same input.
Summarize repository contributions
github.repository_work_summaryread
Read one compact daily contributor summary for an explicit selection of this account's tracked repositories. Combines saved mirror and remote-branch commits, deduplicates SHAs across forks, separates merges and unknown authors, and returns measured line coverage, contributor member IDs when unambiguously linked, current members and completed branch-index coverage. Reads at most 1,000 rows per source within a time budget; incomplete reads are explicit lower bounds. Makes no GitHub or model requests, sends no messages and changes nothing. Use this first for a group report, then request only bounded member_work_report patch samples. Lines and commits do not measure hours, value or employment performance.
Parameters
Field
Type
Required
Description
repositories
string[]
required
Required exact owner/name selection of 1–100 currently tracked repositories in this account. Unknown, untracked, empty or foreign selections fail without broadening or changing shared tracking.
from
string (date-time)
required
Inclusive start timestamp of the reporting window, including timezone offset. Use the intended local calendar-day boundary.
to
string (date-time)
required
Exclusive end timestamp, after from and within 90 days. Use the same boundaries for subsequent member patch samples.
Over MCP the same operation is the tool github_repository_work_summary at https://app.chirply.io/api/mcp, same bearer token, same input.
AI review a commit
github.review_commitwrite
Have an AI read one commit's actual diff and score it for correctness, security, data safety and clarity, returning a 0-100 score, a risk level, specific findings and what the change did well. Runs on this account's own OpenRouter key, so it costs the account a model call — one per commit, and a stored review is returned instead of re-billing unless you force a re-review. A very large diff is reviewed from the largest slice that fits and flagged as partial. Merge commits are refused: a merge's diff is the whole branch it brings in, which was already reviewed commit by commit.
Parameters
Field
Type
Required
Description
commit_id
string (uuid)
required
The commit to review, by its id from github.list_commits.
force
boolean
optional
Re-review a commit that already has one, paying for a fresh model call. Default: false
Over MCP the same operation is the tool github_review_commit at https://app.chirply.io/api/mcp, same bearer token, same input.
Follow or unfollow a repository
github.set_repository_trackingwriteadmin only
Choose whether a repository's commits are ingested and counted in this account's code reports. Unfollowing stops future syncs from reading it and drops it out of new reports; commits already stored stay stored, so old digests keep their numbers. Nothing on GitHub changes — this is a local preference only.
Parameters
Field
Type
Required
Description
repository_id
string (uuid)
required
The repository, by its id from github.list_repositories.
tracked
boolean
required
true to follow it (commits are ingested), false to stop following it.
Over MCP the same operation is the tool github_set_repository_tracking at https://app.chirply.io/api/mcp, same bearer token, same input.
Enable push tracking
github.setup_push_trackingwriteconfirmadmin only
Enable ongoing signed push tracking for this account's tracked GitHub repositories. Saves an encrypted signing secret, then background workers create or repair only hooks pointing at this account's exact Chirply callback. GitHub will send future push metadata to Chirply; existing unrelated hooks and subscriptions are preserved. Uses the connected GitHub tokens and API quota, with no AI generation charge. A repository administrator's token needs Webhooks write permission. Work resumes automatically in bounded batches, including newly tracked repositories; this does not recover past push times. Calling again retries setup without creating duplicate hooks. Read github.push_tracking_status for progress, inaccessible repositories and errors.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Over MCP the same operation is the tool github_setup_push_tracking at https://app.chirply.io/api/mcp, same bearer token, same input.
Index remote branch activity
github.start_branch_backfillwriteadmin only
Queue a resumable scan of current remote branches in this account's tracked repositories for a date window. Saves commit metadata and line totals once so member reports can query an index, including unfinished branches without pull requests. Uses the account's GitHub API quota and Chirply background processing, sends no messages and modifies no remote repositories. Active identical date-and-repository requests reuse one job. Optional repositories creates a separate selected-repository job; omitted selection retains account-wide indexing. Neither changes shared tracking or an existing job. Historical evidence proves reachable commits by commit date, not exact push times or deleted/local branches. Inspect progress with github.branch_backfill_status.
Parameters
Field
Type
Required
Description
period
"rolling" | "yesterday"
optional
Use yesterday for the previous local calendar day; rolling preserves the last N days ending now. Explicit from/to take precedence. Default: "rolling"
timezone
string
optional
IANA timezone such as America/Chicago. Required with period=yesterday so the calendar boundary is explicit rather than silently using UTC.
days
integer
optional
How many days back to look, ending now. 1 is 'since this time yesterday' — the daily-standup window. Ignored when `from` and `to` are given. Default: 1
from
string (date-time)
optional
Start of an explicit window, as an ISO 8601 timestamp, e.g. 2026-09-14T00:00:00Z.
to
string (date-time)
optional
End of an explicit window, as an ISO 8601 timestamp. Must be after `from`.
repositories
string[]
optional
Restrict every evidence source and GitHub search to these 1–100 repositories currently tracked in this account. Unknown, untracked, other-account or empty selections fail without broadening. Omit for all account-tracked repositories; this never changes shared tracking preferences.
Over MCP the same operation is the tool github_start_branch_backfill at https://app.chirply.io/api/mcp, same bearer token, same input.
Check the GitHub connection
github.statusread
Report whether this account has a GitHub connection, which organization it points at, how many repositories are mirrored and followed, how many commits are stored, and when the last sync ran. Read-only, touches GitHub's API not at all (it reads the local mirror), and costs nothing. Start here when a code report comes back empty — the usual causes are no connection, no followed repositories, or a token that can't see the organization.
Over MCP the same operation is the tool github_status at https://app.chirply.io/api/mcp, same bearer token, same input.
Sync GitHub now
github.syncwriteadmin only
Pull the repository list and any new commits from GitHub into this account's code-activity mirror, then link any GitHub accounts whose commit email exactly matches a team member's. Reads GitHub only — it never pushes, comments, or changes anything in a repository. Spends some of the token's hourly GitHub rate limit, and fetches per-commit line counts up to a fixed budget per run, so a very large backlog fills in over several runs rather than all at once. Runs hourly on its own; call this when you want the numbers current right now.
Parameters
Field
Type
Required
Description
repository_id
string (uuid)
optional
Sync only this repository (its id from github.list_repositories). Default: every followed repository.
since
string (date-time)
optional
Re-read commits from this instant forward, ignoring the saved cursor. Use to backfill history you didn't have before; leave it off for the normal incremental pull.
Over MCP the same operation is the tool github_sync at https://app.chirply.io/api/mcp, same bearer token, same input.
Unlink a GitHub account
github.unlink_memberwriteadmin only
Remove the link between a GitHub login and a team member. Reports go back to showing the GitHub handle for that account; no commits are deleted and no numbers change. Use it when a link was made to the wrong person.
Parameters
Field
Type
Required
Description
identity_id
string (uuid)
required
The GitHub account to unlink, by its id from github.list_identities.