
Faultline
io.github.nxtg-aiPublished by GitHub account nxtg-aiv0.12.1Updated Nov 6, 2026
Checks the most important factual claims in AI output against live web sources by default.
Overview
Faultline verifies factual claims in AI-generated text against live web sources and returns per-claim verdicts, confidence scores and risk levels.
- What you can do
- Verify claims: decompose AI output into atomic claims and check each against live evidence, returning supported, contradicted, mixed or unverified verdicts with confidence scores
- Assess risk: report an overall risk level and the weakest-link claim that most undermines the argument
- Compare and critique: diff two texts or scans for new, removed or changed claims, and get critiques with improved prompts for failed claims
- Scan documents: submit text, PDFs or images (with OCR) and receive results in JSON, markdown, HTML or SARIF
- Gate CI: fail a build when risk is high or critical, or when a report falls below a threshold
- When to use it
- Useful when an assistant produces factual output that needs checking before it is published, shipped or merged, and when you want an automated gate on AI-written release notes, reports or documentation. Also fits pipelines that need per-claim evidence and confidence rather than a single pass/fail score.
- Requirements
- A remote Streamable HTTP endpoint; the manifest points at the hosted API, and the README also documents a hosted MCP route at the same host. A Faultline API key is required, sent in the X-API-Key header. Scans run on the hosted service with server-side provider keys; plan limits apply (free tier is 5 scans per month).
Installation
In SourceWeft
- Open Faultline in the dashboard and add it to a workspace.
- Connect X-API-Key credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.nxtg-ai%2Ffaultline/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"faultline": {
"type": "http",
"url": "https://faultline-api.fly.dev/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}README
Faultline — We check the receipts on AI output.
Future-proof your agent stack. Independent of every model vendor: NXTG.ai does not build the models Faultline checks.
Faultline decomposes AI-generated output into atomic claims, verifies each against live evidence, and can fail a CI build on the result.
[Release stage: alpha] [CI] [npm] [Tests] [TypeScript] [License]
Release stage: alpha. Usable today, with sharp edges. No accuracy figure is claimed: verdict accuracy has not yet been re-graded independently. Anything may change before 1.0.
Governance records the API produces
The hosted API ships three governance records as code: a risk register export (POST /scan/risk-register), a tamper-evident audit log manifest (GET /audit/log/manifest, admin keys only), and human sign-off records (POST /scans/:id/approve, GET /scans/:id/approvals). In the manifest, each chain hash is the SHA-256 of the entry hash followed by the previous chain hash. You can recompute the chain with openssl dgst -sha256 alone, with no Faultline tooling.
Current Status (checked 2026-10-01)
What It Does
Features
Providers
Switch providers with --provider <name>. No code changes required. With no provider key and no FAULTLINE_API_KEY, the CLI says nothing was checked and exits instead of inventing a verdict (since v0.10.1). With FAULTLINE_API_KEY set, guard and the MCP server run the scan on the hosted API with server-side provider keys.
Document Ingestion
- PDF + image upload with OCR —
faultline scan --file document.pdforPOST /scan/upload; powered bypdf-parse+tesseract.js - Text files —
--input doc.txt - Directories —
--dir ./docs --glob "*.md"
Reports and Rules
- Scan reports (PDF) via
POST /scan/report - Rules engine — YAML-defined rules: PII detection, bias indicators, toxicity flags, custom rules
Output Formats
json— programmatic processing, CI pipelinesmarkdown— PRs, reports, documentationhtml— browser-readable audit reportssarif— VS Code Problems panel, GitHub Code Scanning (--sarifshorthand writesresults.sarif)
Enterprise API
- API key management — full lifecycle:
POST /keys,GET /keys,GET /keys/:id,PATCH /keys/:id,DELETE /keys/:id; soft-disable/enable; scoped permissions (scan / report / upload / admin / pro) - Key hygiene — dormant key detection (
GET /keys/dormant), expiry notifications (7d/1d thresholds), bulk delete/disable/enable, usage analytics (GET /keys/usage), hygiene dashboard (GET /keys/usage/view) - Audit trail — SHA-256 input hash logged on every request;
GET /audit/log(query + filter),GET /audit/log/stats,GET /audit/log/export(NDJSON); tenant-scoped view - Usage metering: per-key daily scan counts and monthly quota position via
GET /usage(admin keys also see the provider-spend budget) - Rate limiting — per-tier per-minute limits: free 10/min, pro 100/min, admin 10,000/min;
X-RateLimit-*headers - Spend and quota gates: a per-key monthly scan quota (
402) and a fleet provider-spend cap (503), both dormant until switched on; the spend ledger records every managed scan and/critiquecall either way - Multi-tenant — tenant CRUD (
POST /tenants); all resources scoped by tenant: scan history, notifications, webhooks, audit log;GET /tenants/:id/usage - Cost tracking — per-scan token/cost estimates by provider rate;
GET /costs(keyId/provider/date filters + aggregate) - Usage dashboard —
GET /dashboard: live scan feed, provider health, active keys, scan counts (today/week/month), risk distribution - Webhooks —
POST /webhooks;scan.complete/scan.failed/job.completeevents; HMAC-SHA256 signing; per-webhook retry config (maxAttempts 1–5, retryDelayMs); rate limiting (FAULTLINE_WEBHOOK_RATE_LIMIT); circuit breaker (FAULTLINE_WEBHOOK_CIRCUIT_THRESHOLD/COOLDOWN_MS); delivery log + dashboard - Batch scanning —
POST /scan/batch(1–10 texts, concurrent, partial failure semantics); see docs/ci-integration.md - Scan comparison —
POST /scan/compare: diff two scan results (new/removed claims, verdict changes, trust score delta) - Caching — SHA-256 content-hash cache; 24h TTL (env
FAULTLINE_CACHE_TTL_MS);X-Cache: HIT/MISSheader;GET /cache/stats,DELETE /cache - Scheduled jobs —
POST /jobs: recurring scans on a*/N * * * *cron schedule; results dispatched towebhookUrl - Provider failover — automatic chain Gemini → OpenAI → Claude → Perplexity → Mock; circuit breaker trips after 5 failures, resets after 5 minutes;
503when all providers down - Scan history — private per API key (the admin key sees all);
GET /scans/search?q=full-text; stale scan detection (GET /scans/stale); usage analytics (GET /scans/usage); bulk pruning (DELETE /scans/stale); hygiene dashboard;faultline scansCLI - Rule templates (HIPAA, SOX, FERPA, Gov) — HIPAA / SOX+FINRA / FERPA / Government;
POST /scan/compliance/:template; custom template upload - Bulk import —
POST /scan/bulk(ZIP of documents → async job);GET /jobs/:id/progress(percentage + per-file status + summary) - Monitoring —
GET /health/deep(subsystem status + provider config flags),GET /metrics(Prometheus text),GET /status(HTML) - Swagger UI —
GET /docs(interactive OpenAPI 3.0),GET /docs/json,GET /docs/yaml - Claim search —
GET /claims?text=&verdict=&from=&to=&source=full-text claim index search - GDPR data requests (Article 15 export, Article 17 erasure) —
GET /tenants/:id/export(Article 15, admin-gated): ZIP archive with manifest, scan-history, audit-log (NDJSON), notifications, webhooks, usage, costs, schedules;DELETE /tenants/:id/data(Article 17, admin-gated): erases all PII across 8 data categories for a tenant; idempotent; tenant record preserved - i18n — send
Accept-Language: esorAccept-Language: frfor localized error messages; defaults to English
Quick Start (CLI)
Step 1: Get a free Gemini key (no credit card): aistudio.google.com/apikey
Step 2:
Expected output (excerpt):
Other providers:
Scan a PDF or image:
Check piped agent output:
CI gate (no API key required, synthetic verdicts, wiring test only):
API Quick Start
Start the server:
Scan a text payload:
Upload a PDF or image for OCR scanning:
Generate a PDF report of a scan:
Create an API key:
Register a webhook:
View the usage dashboard:
Hosted API: https://faultline-api.fly.dev (GET /health needs no key). Interactive docs at GET /docs on a running server.
Check consensus gating (needs an API key; the mock provider spends nothing):
Route reference: packages/api/README.md. The spec at packages/api/docs/openapi.yaml declares version 0.7.0 and has 48 paths, so it covers only part of the current routes.
Architecture
Monorepo layout:
The production web app at https://faultline.nxtg.ai is a separate repo (faultline-web, Next.js on Vercel). It is not in this monorepo.
Stores (API layer):
CLI Commands
SDKs and Integrations
TypeScript / Node.js
There is no TypeScript SDK package in this repo and @nxtg/faultline-sdk is not on npm (npm view returned 404 on 2026-10-01). Call the REST API directly, or use the CLI (@nxtg/faultline).
Python
Source is in sdks/python (pyproject name faultline-sdk, version 0.5.0, zero runtime dependencies). Install from a checkout:
Do not run pip install faultline-sdk. On 2026-10-01 that name on PyPI (version 0.24.0) is an unrelated project (ML training checkpoints for "Faultline Cloud"). Whether this package was ever published to PyPI under a different name was not verified.
MCP server
packages/mcp (@nxtg/faultline-mcp 0.12.1) exposes a verify_claims tool to Claude Code, Cursor and other MCP clients. It was not published to npm as of 2026-10-01 (npm view returned 404), so run it from a checkout. See packages/mcp/README.md.
Hosted, with nothing to install: the API serves the same tool at POST /mcp (Streamable HTTP, header x-api-key), once deployed at https://faultline-api.fly.dev/mcp; every scan gate applies. See docs/INTEGRATION.md §13.
GitHub Action
The action lives in its own repo, nxtg-ai/faultline-action (tag v1 exists).
CI Integration
See docs/ci-integration.md for:
- GitHub Actions workflow (real provider + mock)
- GitLab CI example
- Pre-commit hook for staged files
- API-based batch scanning with CI gate logic
- Risk level reference table
Quick GitHub Actions example:
What Makes This Different
Promptfoo tests your prompts. DeepEval scores your RAG pipeline. Faultline audits what the AI actually said.
Tests and Quality
Measured 2026-10-01 with npx vitest run in each package (all passing):
Mutation scores are listed in the feature table above and were not re-measured on 2026-10-01.
Built by NextGen AI
Source: README.md at commit 21a2c14
Tools
0Version history
1- v0.12.1LatestNov 6, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts