Install
Get Started
All open-source packages are Apache 2.0. No license keys. No telemetry. No expiration.
Start with guardspine-kernel and add components as needed.
# Quickest start - just the kernel
npm install @guardspine/kernel
npm install @guardspine/kernel
guardspine-kernel
Trust anchor - start here
Install
npm install @guardspine/kernel
Requires: Node.js 18+
What You Get
- • sealBundle() - create tamper-evident evidence bundles
- • verifyBundle() - offline integrity validation
- • computeContentHash() - SHA-256 from canonical JSON (RFC 8785)
Quick Start
import { sealBundle, verifyBundle } from '@guardspine/kernel';
const bundle = sealBundle([
{ item_id: 'review-1', content_type: 'approval', content: { decision: 'approved', approver: 'alice' } },
{ item_id: 'diff-1', content_type: 'diff', content: { file: 'main.ts', hunks: ['+line1'] } },
]);
const result = verifyBundle(bundle);
console.log(result.valid); // true guardspine-verify
CLI verifier
Install
pip install guardspine-verify
Requires: Python 3.9+
What You Get
- • Verify any evidence bundle from the command line (JSON or ZIP)
- • Python API: verify_bundle(path) and verify_bundle_data(dict)
- • Checks: hash chain, root hash, content hashes, signatures, sequence, AI provenance
- • Zero network calls - fully offline
Quick Start
# Verify a bundle file
guardspine-verify bundle.json
# Verify a ZIP export
guardspine-verify bundle.zip
# Verbose output with JSON format
guardspine-verify bundle.json --verbose --format json
# Exit codes: 0=verified, 1=failed, 2=invalid input guardspine-adapter-webhook
Evidence bundle delivery to Slack, Teams, Discord
Install
npm install @guardspine/adapter-webhook
Requires: Node.js 18+
What You Get
- • Deliver evidence bundles to Slack, Teams, Discord, and custom endpoints
- • Ingest webhooks from GitHub (HMAC-SHA256), GitLab (token), or custom sources
- • Automatic risk tier inference from labels and file paths
- • Extensible WebhookProvider interface for custom sources
Quick Start
import { WebhookHandler, GitHubProvider, BundleEmitter } from '@guardspine/adapter-webhook';
const handler = new WebhookHandler([new GitHubProvider({ secret: process.env.GH_SECRET })]);
const emitter = new BundleEmitter({ defaultRiskTier: 'L1' });
// In your webhook handler:
const event = handler.handle(headers, body);
const bundle = emitter.emit(event); guardspine-local-council
Local AI review - no cloud
Install
pip install guardspine-local-council
Requires: Python 3.10+, Ollama
What You Get
- • Multi-model code review councils using local Ollama
- • No API keys, no tokens, no data leaves your network
- • Confidence-weighted majority voting with quorum enforcement
Quick Start
from guardspine_local_council import LocalCouncil, OllamaProvider, SimpleAggregator
council = LocalCouncil(
providers=[OllamaProvider("llama3.1"), OllamaProvider("codellama"), OllamaProvider("mistral")],
aggregator=SimpleAggregator(quorum=3, consensus_threshold=0.66),
)
result = council.review("Review this diff for security issues:\n" + diff_text)
print(result.decision, result.confidence) rlm-docsync
Self-updating docs with proofs
Install
pip install rlm-docsync
Requires: Python 3.9+
What You Get
- • Spec-first mode: docs as truth, detect code violations
- • Reality-first mode: code as truth, auto-update docs
- • SHA-256 hash-chained evidence packs with manifest snapshots
Quick Start
# Run docsync with a manifest (spec-first or reality-first)
docsync run --manifest guardspine.docs.yaml
# Verify an evidence pack's hash chain
docsync verify --pack evidence-pack.json n8n-nodes-guardspine
n8n workflow nodes
Install
npm install n8n-nodes-guardspine
Requires: n8n instance
What You Get
- • GuardSpine Gate node - evaluate artifacts against rubrics
- • Beads Create node - create work items in the task spine
- • Pass/Block routing based on risk tier
Quick Start
// In your n8n instance:
// 1. Install: npm install n8n-nodes-guardspine
// 2. Add GUARDSPINE_API_KEY credential
// 3. Set Base URL to your GuardSpine API
// 4. Drag "GuardSpine Gate" node into workflow
// 5. Connect Pass output to next step, Block to error handler guardspine-connector-template
Build custom connectors
Install
git clone https://github.com/DNYoussef/guardspine-connector-template && pip install -e .
Requires: Python 3.9+
What You Get
- • BaseConnector abstract class for integrating any document source
- • AsyncIterator-based change watching with get_diff()
- • BundleEmitter helper for evidence bundle creation
- • Example connectors: GitHub, SharePoint, Jira, Slack
Quick Start
from guardspine_connector import BaseConnector, BundleEmitter
class MyConnector(BaseConnector):
async def watch_changes(self):
# Yield ChangeEvent objects from your source
...
async def get_diff(self, event):
# Return diff dict for a change event
...
async def get_artifact_metadata(self, artifact_id):
# Return metadata for an artifact
...