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:

ModeBehavior
offNo check run created
informationalCheck always passes; reports attribution as context
blockingCheck 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