Semantica.io Overview
Semantica.io is the hosted platform that extends the CLI's local capabilities into team-wide visibility and GitHub/GitLab workflow integration.
The CLI works fully offline without any account. Semantica.io is optional.
What you get with Semantica.io
GitHub integration
- PR attribution comments: Semantica posts a comment on every pull request showing AI attribution per file and overall
- GitHub check runs: A check run is created for every PR with configurable pass/fail thresholds based on AI attribution percentage
- Policy enforcement: When configured as a required status check in branch protection, Semantica can block merges that exceed AI attribution thresholds
GitLab integration
- MR comments: Attribution results posted as merge request comments
- Commit statuses: Attribution percentage as a GitLab commit status
Dashboard
- Aggregate AI attribution trends across connected repositories
- Per-repo and per-commit attribution history
- Session and playbook data surfaced for team review
Getting started with Semantica.io
Step 1: Authenticate
semantica auth login
This opens a browser for OAuth authorization via GitHub or GitLab and polls until complete. You only need to do this once globally.
Step 2: Connect a repo
In the repository you want to sync:
semantica connect
This registers the repo with the backend and sets connected: true in .semantica/settings.json. Attribution data from future commits will be pushed automatically.
Step 3: Install the GitHub App
For GitHub PR comments and check runs, install the Semantica GitHub App on your organization or repository from the dashboard at semantica.sh.
For GitLab, configure a project webhook from the dashboard.
Check runs and policy enforcement
Semantica's GitHub check run reports AI attribution on every PR. The check defaults to neutral (informational only). To make it enforce a policy, configure thresholds:
| Mode | Behavior |
|---|---|
off | No check run created |
informational | Check always passes; reports attribution as context |
blocking | Check fails if attribution exceeds configured thresholds |
Default thresholds in blocking mode:
- Warn at 75% AI attribution
- Fail at 90% AI attribution
When Semantica's check is added as a required status check in GitHub branch protection, PRs exceeding the fail threshold cannot be merged until a human reviewer approves them.
Data sent to the backend
When a repo is connected, Semantica pushes:
- Attribution summaries (AI percentage, line counts, file counts per commit)
- Commit metadata (hash, subject, author, timestamp)
- Session identifiers and provider names
Semantica does not push:
- File contents or diffs
- Agent transcripts or session logs
- Playbook text
- Anything from
.semantica/objects/
Before any data leaves the machine, Semantica applies secret redaction using embedded Gitleaks patterns. If the redactor cannot initialize, the outbound operation is blocked rather than sending unredacted data. Remote URL fields are sanitized to strip embedded credentials, query strings, and fragments before upload.
Disconnecting
To stop syncing a repo:
semantica disconnect
This sets connected: false in .semantica/settings.json. No data is deleted from the backend automatically; contact support if you need data removal.
To remove authentication entirely:
semantica auth logout