matrixscroll
A trust-first repository copilot to audit signed commit provenance, preview editor configuration safety, and manage Git hook rollouts.
README
Matrix Scroll
Signed proof of who — or what — wrote every commit. Matrix Scroll is the open Ed25519 commit-provenance protocol for agent-assisted Git — verified offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust upgrade; emulated mode ships today.
Hosted control plane: identity, billing, and device activation live at ssx360.com. Digital Rain is the local funnel; Matrix Scroll is the spear.
Compliance evidence mapping
Matrix Scroll maps to and produces evidence for (never “required by”):
- Five Eyes · Agentic AI (Apr 2026) — cryptographic attestation that agents run expected, unmodified code.
- EU AI Act · high-risk traceability — verifiable commit-time audit artifacts.
- US federal SSDF · self-attestation — evidence packs for supply-chain review.
Full matrix: controls/agentic_ai_controls.json
Adoption signals
Track outbound and registry traction while rolling out:
| Signal | Counter |
|---|---|
PyPI matrixscroll |
|
PyPI [mcp] extra |
|
| GitHub stars | |
| Scroll Gate Action | |
| Glama MCP registry | matrixscroll on Glama |
Hero demo (post–MCP merge)
Record the 60–90s provenance flow in docs/HERO_DEMO.md — Scroll Gate + browser verifier + MCP verbs only.
Install — MCP server (headline path)
Agents sign commits in-loop via the provenance-only MCP server:
{
"mcpServers": {
"matrixscroll-mcp": {
"command": "matrixscroll-mcp",
"args": []
}
}
}
pip install "matrixscroll[mcp]==0.2.6"
matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
MCP tools (provenance verbs only): create_envelope, verify_envelope,
verify_pr_range (Scroll Gate), publish_notes, status, audit_export.
Workspace intelligence (analyze, brainstorm, radar) lives in Digital Rain — not in this MCP server.
Also available — CLI & hooks
pip install "matrixscroll==0.2.6"
matrixscroll hook-install
export MATRIXSCROLL_ACTOR_TYPE=agent
export MATRIXSCROLL_TOOL=agent-runner
git commit -m "feat: agent-assisted change"
matrixscroll envelope-verify "$(git rev-parse HEAD)"
See docs/quickstart-git.md and
examples/demo/agent-commit-demo.sh.
This repository is the canonical SDK, verifier contract, fixture set, and release surface for the product.
Matrix Scroll is a cryptographic evidence layer for Git. When an agent, CI workflow, or human operator produces a commit, a signed commit envelope can record the actor, tool, and optional bounded scope. Anyone can verify that envelope locally, in CI, or in the browser without trusting the editor session that produced it.
Keep GitHub Advanced Security, Semgrep, Snyk, branch protection, and artifact attestations. Matrix Scroll adds signed commit-time authorship proof before merge, and it keeps the same offline verification contract across the CLI, browser, CI, and the SE050 preview path.
The reference SDK ships pure Ed25519 over canonical manifest bytes today. The SSX360 / NXP SE050 path is the compatible next trust layer and remains a preview path until device acceptance is complete.
Honest limits
- Shipping now: PyPI
matrixscroll==0.2.6, Git post-commit hooks,matrixscroll envelope-verify, Scroll Gate PR verification, browser verifier, the GitHub Action, and a USB CDC host transport preview for the SE050 rollout path. Emulated mode is the default evaluation path. - In progress: RP2350 + SE050 firmware validation, external Ed25519-capable hardware key backends, and transparency-log integrations.
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
Where it fits
- Scanners and branch protection catch code and policy issues; Matrix Scroll records who or what signed the change before push.
- Hardware keys and build attestations remain complementary roots and downstream proofs; Matrix Scroll covers commit-time provenance.
- The public contract stays pure Ed25519 over canonical manifest bytes, whether the signer is emulated today or hardware-backed later.
Common questions
What is Matrix Scroll and how does it secure Git?
Matrix Scroll is signed commit-time provenance for agent-assisted Git. It secures Git by attaching an Ed25519-signed commit envelope to a commit, recording the actor, tool, and optional bounded scope, then letting reviewers verify that proof offline in the CLI, browser, or CI before merge.
How do hardware and emulated modes differ in Matrix Scroll?
Emulated mode ships today and keeps the signing key on disk with owner-only permissions so teams can evaluate the full workflow now. Hardware mode keeps the same verifier contract and commit envelope schema, but moves the private key into the SE050 secure element so the host cannot export it; that path remains preview-only until device acceptance is complete.
How can I integrate Matrix Scroll into a CI/CD workflow?
Install the SDK and hooks in your repo, publish commit envelopes to
refs/notes/matrixscroll before PR review, and use
SSX360/matrixscroll-verify-action@v1 to verify the full PR commit range in
GitHub Actions. Protected branches can then require Matrix Scroll proof
alongside your existing scanners, branch protection, and build attestations.
Quickstart (CLI)
pip install "matrixscroll==0.2.6"
matrixscroll hook-install
matrixscroll hook-status
export MATRIXSCROLL_ACTOR_TYPE=agent
export MATRIXSCROLL_TOOL=agent-runner
git commit -m "feat: agent-assisted change"
matrixscroll envelope-verify "$(git rev-parse HEAD)"
See docs/quickstart-git.md and run
examples/demo/agent-commit-demo.sh.
CI verify
Scroll Gate for a PR commit range
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: SSX360/matrixscroll-verify-action@v1
with:
head-ref: ${{ github.event.pull_request.head.sha }}
base-ref: ${{ github.event.pull_request.base.sha }}
source: notes
matrixscroll-version: "0.2.6"
require-mode: emulated
Publish envelopes to git notes before review:
matrixscroll envelope-publish-notes --base origin/main --head HEAD
git push origin refs/notes/matrixscroll
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: SSX360/matrixscroll-verify-action@v1
with:
head-ref: ${{ github.event.pull_request.head.sha }}
base-ref: ${{ github.event.pull_request.base.sha }}
source: notes
matrixscroll-version: "0.2.6"
summary-output: provenance-summary.json
See docs/quickstart-git.md and
examples/ci/protected-branch.yml.
The --require-mode, --trusted-keys, and actor or delegation policy checks
are available in the 0.2.x line; the examples in this README pin 0.2.6.
Why it is different from Sigstore
Sigstore, GitHub artifact attestations, and SLSA answer "what was built in CI?" Matrix Scroll answers "who signed this commit before push?" The systems are complementary: Matrix Scroll signs commit envelopes at commit time, while artifact-attestation systems sign build outputs later in the delivery chain.
Matrix Scroll does not compete with general authentication keys on their home field. Existing hardware roots can become Matrix Scroll signing backends only when they preserve the same pure Ed25519 byte contract.
Public proof links
- Browser verifier: https://matrixscroll.com/verify/
- Compare page: https://matrixscroll.com/compare/
- Specification:
SPEC.md - Commit envelope schema:
schemas/commit-envelope.v1.json - Whitepaper:
docs/WHITEPAPER.md - Conformance vectors:
vectors/ - GitHub Action: https://github.com/SSX360/matrixscroll-verify-action
- Agentic AI controls:
docs/AGENTIC_AI_SECURITY.md - Site: https://matrixscroll.com
- Reference device path: SSX360
Python API
pip install "matrixscroll==0.2.6"
import matrixscroll
print(matrixscroll.status())
# {'schema': 'matrixscroll.identity.v1', 'available': True,
# 'mode': 'emulated', 'device_id': 'MS-A3F2-9C81', ...}
signed = matrixscroll.sign_manifest({"release": "v1.0.0", "artifacts": [...]})
assert matrixscroll.verify_manifest(signed)
CLI
$ matrixscroll status
{
"available": true,
"device_id": "MS-A3F2-9C81",
"mode": "emulated",
"public_key": "...",
"schema": "matrixscroll.identity.v1"
}
$ matrixscroll sign release.json > release.signed.json
$ matrixscroll verify release.signed.json
{"device_id": "MS-A3F2-9C81", "mode": "emulated", "ok": true, "signed_at": "..."}
matrixscroll verify exits 0 on a valid signature and 2 on failure
(tampered manifest, missing signature block, wrong schema or algorithm,
mismatched device ID, malformed public key, unreadable file).
How it works
your IDE / agent / CI
|
| commit envelope, release manifest, evidence pack, SBOM
v
matrixscroll.sign_manifest(...) / post-commit hook
|
| canonical JSON (sorted keys, ASCII-escaped, no NaN,
| signature block excluded from input)
v
IdentityProvider --> Ed25519 signature
(L1 emulated today,
SSX360 / SE050 roadmap)
|
v
signed document --> matrixscroll.verify_manifest(...)
(anyone, anywhere, offline)
Switch providers with MATRIXSCROLL_MODE. Hardware mode includes a USB CDC
host transport preview and a mock path for CI; real SE050 signing still
depends on device firmware validation. External-key backends stay out of the
mainline until they can sign the same canonical bytes with Ed25519.
For rollout order, start with MATRIXSCROLL_MODE=emulated for evaluation,
layer in external Ed25519-capable signers only when they stay verifier
compatible, and treat hardware as the SE050 preview path until device
acceptance is complete.
Compliance levels
| Level | Provider | Backed by | Status |
|---|---|---|---|
| L1 Emulated | EmulatedProvider |
Software key, file-backed (0600) | Shipping |
| L2 Hardware | HardwareProvider |
NXP SE050 secure element (SSX360) | In progress |
| L3 Attested | future | L2 + remote attestation | Roadmap |
status() exposes the active level via the mode and available fields.
Storage and trust boundaries
- Emulated key store:
~/.matrixscroll/device.json(override withMATRIXSCROLL_HOME). - The directory is created
0700; the seed file is opened0600withO_CREAT|O_EXCLso the private seed is never momentarily world-readable. - A corrupt or truncated store fails loud (
IdentityError) rather than silently minting a fresh identity. - The planned hardware path holds nothing private on disk; the seed is sealed in the secure element.
Reference implementation, not the only one
Matrix Scroll is a protocol. This Python package is the reference. We welcome
implementations in Rust, Go, TypeScript, and embedded C. Run them against
vectors/ to self-certify. See CONTRIBUTING.md.
Agentic AI guidance proof
The repo includes a machine-readable control matrix at
controls/agentic_ai_controls.json, an
example bounded-agent evidence manifest at
examples/agentic_ai_evidence_manifest.json,
and executable checks in tests/test_agentic_guidance.py.
Model Context Protocol (MCP) Server
The MCP server exposes provenance verbs only: create_envelope, verify_envelope,
verify_pr_range, publish_notes, status, and audit_export. Workspace intelligence
and repo scanning live in
Digital Rain — not in this MCP server.
Install and register in Cursor / Claude Desktop / VS Code:
pip install "matrixscroll[mcp]==0.2.6"
matrixscroll-mcp # stdio
See the Install — MCP server section above for
the recommended mcp.json snippet.
License
- Code: Apache-2.0 (
LICENSE). - Specification text (
SPEC.md,vectors/): CC0 1.0 - public domain.
Security
See SECURITY.md. Report vulnerabilities privately to
security@matrixscroll.com or via a GitHub Security Advisory.
Protocol: https://matrixscroll.com · Verify: https://matrixscroll.com/verify/
Control plane: https://ssx360.com · Pilot: sales@ssx360.com
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。