Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
See the truth about your APIs runi is an open-source API client that verifies what AI generates. When 46% of developers don't trust AI output (Stack Overflow 2025 Developer Survey), you need a second opinion. runi is that opinion. <!-- markdownlint-disable MD033 MD041 --> <p align="center"> <img src=".github/assets/runi-head-iced.svg" alt="runi" width="120" /> </p> <h1 align="center">runi</h1> <p align="center"> <strong>See the truth about your APIs</strong> </p> <p align="center"> An open-source API client that verifies what AI generates.<br/> Local-first. Git-friendly. No account required. Ever. </p> <p align="center"> <a href="https://githu Capability contract not published. No trust telemetry is available yet. 11 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
runi is best for general automation workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
See the truth about your APIs runi is an open-source API client that verifies what AI generates. When 46% of developers don't trust AI output (Stack Overflow 2025 Developer Survey), you need a second opinion. runi is that opinion. <!-- markdownlint-disable MD033 MD041 --> <p align="center"> <img src=".github/assets/runi-head-iced.svg" alt="runi" width="120" /> </p> <h1 align="center">runi</h1> <p align="center"> <strong>See the truth about your APIs</strong> </p> <p align="center"> An open-source API client that verifies what AI generates.<br/> Local-first. Git-friendly. No account required. Ever. </p> <p align="center"> <a href="https://githu
Public facts
5
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 11 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Paulbreuler
Artifacts
0
Benchmarks
0
Last release
0.8.1
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 11 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/paulbreuler/runi.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Paulbreuler
Protocol compatibility
MCP
Adoption signal
11 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
5
Snippets
0
Languages
typescript
yaml
# Your collections are just files
# .runi/collections/stripe.yaml
name: Stripe API
requests:
- name: List Customers
method: GET
url: '{{base_url}}/v1/customers'
headers:
Authorization: 'Bearer {{stripe_key}}'bash
git clone https://github.com/paulbreuler/runi.git cd runi just install just build
bash
# 1. Start development server just dev # 2. Send your first request # Just paste a URL and hit Enter # 3. Import your OpenAPI spec # File → Import Spec → Select your openapi.yaml # 4. Bind a request to the spec # Right-click request → Bind to Spec → Select operation # 5. Watch drift detection work # Change your spec. See the yellow badge appear.
bash
# From Postman runi import postman ./your-collection.json # From Bruno runi import bruno ./your-bruno-folder # From OpenAPI spec runi import openapi ./openapi.yaml
bash
# Development setup git clone https://github.com/paulbreuler/runi.git cd runi just install # First-time setup just dev # Start development server just ci # Run full CI pipeline (before pushing) just pre-commit # Fast checks (before committing)
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
See the truth about your APIs runi is an open-source API client that verifies what AI generates. When 46% of developers don't trust AI output (Stack Overflow 2025 Developer Survey), you need a second opinion. runi is that opinion. <!-- markdownlint-disable MD033 MD041 --> <p align="center"> <img src=".github/assets/runi-head-iced.svg" alt="runi" width="120" /> </p> <h1 align="center">runi</h1> <p align="center"> <strong>See the truth about your APIs</strong> </p> <p align="center"> An open-source API client that verifies what AI generates.<br/> Local-first. Git-friendly. No account required. Ever. </p> <p align="center"> <a href="https://githu
Pre-alpha. runi is under active development. The vision is solidifying, the foundations are being laid. Expect rough edges — and rapid evolution. Star the repo to follow along the learning journey.
This repo started as an experiment and will continue to push boundaries. It may not be for you. If you think handcrafted code is gold, you should travel back in time to a time when people had to punch cards to write code.
Feedback always welcome! Join the run if you wish, fork and PR.
You're using AI to write API integration code. So is everyone else — 84% of developers now use AI tools, with 89% using generative AI in their workflow.
But here's what nobody talks about: 46% of developers don't trust the accuracy of AI output — up from 31% last year. The biggest frustration? 66% cite "solutions that are almost right, but not quite."
The tools generating code are getting better. The tools verifying that code? They don't exist.
Meanwhile, your HTTP client wants you to create an account, sync to their cloud, and hope your credentials don't leak. When you refuse, half the features disappear.
runi is different.
Statistics above: Stack Overflow 2025 Developer Survey (AI usage, trust, frustrations); Postman State of API 2025 (generative AI in workflow); APIContext API Drift White Paper (spec mismatch).
| What You're Used To | What runi Does | | ------------------------------------ | --------------------------------------------------------- | | Create account to use | No account. Ever. | | Data synced to cloud | Local-first. Your data stays yours. | | Collections in proprietary format | YAML files. Git-friendly. Diff them. | | AI generates code, you hope it works | AI generates code, runi verifies it against your spec | | Spec changes break things silently | Drift detection catches it before production | | "What changed?" = archaeology | Temporal awareness shows spec evolution |
Everything you expect, nothing you don't:
{{substitution}}# Your collections are just files
# .runi/collections/stripe.yaml
name: Stripe API
requests:
- name: List Customers
method: GET
url: '{{base_url}}/v1/customers'
headers:
Authorization: 'Bearer {{stripe_key}}'
This is why you'll stay:
75% of production APIs don't match their published specs. runi catches this before you ship.
When 46% of developers don't trust AI output, you need a second opinion. runi is that opinion.
#a855f7) until verified. Green (#22c55e) when safe.Signal System: runi uses consistent visual signals to communicate intelligence. Green = verified/safe, Amber = drift detected, Red = breaking change, Purple = AI-generated (suspect until verified), Blue = suggestion available. See CLAUDE.md for the complete signal reference.
Stripe:Customer ↔ YourAPI:User — see the relationshipAPIs as territory, not lists:
git clone https://github.com/paulbreuler/runi.git
cd runi
just install
just build
Requirements: Rust 1.80+, Node.js 20+, pnpm, just (task runner)
Note: All commands use
justfor consistency between local development and CI. Seejustfilefor the complete command list.
# 1. Start development server
just dev
# 2. Send your first request
# Just paste a URL and hit Enter
# 3. Import your OpenAPI spec
# File → Import Spec → Select your openapi.yaml
# 4. Bind a request to the spec
# Right-click request → Bind to Spec → Select operation
# 5. Watch drift detection work
# Change your spec. See the yellow badge appear.
The Adoption Ladder: runi reveals features progressively as you use it. Start with the HTTP client and network history, discover drift detection when you import a spec, then AI verification, semantic links, and temporal awareness.
| Component | Technology | | ---------- | ------------------------------------- | | Runtime | Tauri v2.9.x | | Backend | Rust 1.80+ | | Frontend | React 19 + TypeScript 5.9 | | Build | Vite 7.x | | Styling | Tailwind CSS 4.x | | Animation | Motion 12.x | | Routing | React Router 7.x | | State | Zustand | | Icons | Lucide | | Storage | YAML/JSON files (no database) | | AI (local) | Ollama (optional) | | AI (cloud) | Anthropic Claude API (optional) |
Bundle size: <50MB
Startup time: <3 seconds
Telemetry: None. Zero. We don't even have the infrastructure to collect it.
Rung 1 (HTTP client) is in place: request/response, network history, timing waterfall, metrics, and signal UI. Next we harden that and move to spec + collections, then drift, then AI verification.
Import functionality is coming soon. Planned commands:
# From Postman
runi import postman ./your-collection.json
# From Bruno
runi import bruno ./your-bruno-folder
# From OpenAPI spec
runi import openapi ./openapi.yaml
Your existing workflows should just work. If they don't, open an issue.
Verification beats generation.
While everyone builds tools to write more code, we're building the tool that lets you trust it.
The brand philosophy: "Collapse uncertainty into truth"
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Development setup
git clone https://github.com/paulbreuler/runi.git
cd runi
just install # First-time setup
just dev # Start development server
just ci # Run full CI pipeline (before pushing)
just pre-commit # Fast checks (before committing)
Essential Commands:
just install - Install all dependenciesjust dev - Start development serverjust ci - Full CI pipeline (format, lint, typecheck, test, E2E)just pre-commit - Fast checks before committingjust fmt - Fix formattingjust test - Run all testsjust generate-types - Generate TypeScript types from Rust (ts-rs)See justfile for the complete command list.
Look for issues labeled good first issue.
MIT — See LICENSE for terms.
Named after Kiki runi — a German Shepherd who sniffs out what's hidden and guards the perimeter.
Built by BaseState in Fargo, North Dakota.
"Collapse uncertainty into truth"
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T04:48:03.773Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Paulbreuler",
"href": "https://github.com/paulbreuler/runi",
"sourceUrl": "https://github.com/paulbreuler/runi",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:11:26.721Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:11:26.721Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "11 GitHub stars",
"href": "https://github.com/paulbreuler/runi",
"sourceUrl": "https://github.com/paulbreuler/runi",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:11:26.721Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-paulbreuler-runi/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to runi and adjacent AI workflows.