What exactly does Talyx protect against? +
The artifact supply chain for AI coding agents: a malicious MCP server launched from a config file, a plugin or extension that ships its own server or hook, a skill or instruction file carrying hidden prompt-injection, an encoded payload in a tool description, a server impersonating a trusted one, a hook that pipes a downloaded script into a shell, a secret read that flows to the network. It inspects what your agent is about to load — across 27 agents — and either verifies it, flags it for review, or blocks it.
How is the AST / taint analysis different from a regex scanner? +
A regex sees that `.ssh/id_rsa` and `fetch(` both appear in a file. It cannot tell whether the key actually reaches the network, and it misses the path entirely when it is built from `path.join(home, ".ssh", "id_rsa")`. Talyx parses the file with tree-sitter and runs a function-scoped, interprocedural taint pass: it follows the value from the read, through variable assignments and helper functions, to the sink. It is a proven superset of the pattern rules for JS/TS, Python and Ruby.
Is it actually local? What leaves my machine? +
It is a single binary. No account, no daemon, no cloud backend, no telemetry. The only outbound calls are optional npm / PyPI registry lookups when you pass --fetch-registry, and a license check against Lemon Squeezy on activation and roughly monthly after. Discovery, analysis, scoring and enforcement all happen on your machine.
Windows, macOS or Linux? +
All three, one Rust codebase that builds to a single native binary with no runtime dependency. Discovery knows the real per-OS config locations — the Windows %USERPROFILE% paths, ~/Library/Application Support on macOS, ~/.config on Linux — and the enforcement shim is a native executable on each platform, not a shell script. Pre-built binaries ship with each release; you can also build from source with cargo build --release.
Will it slow my agent down or break it? +
Scanning is a command you run when you choose to; it is never in your agent's hot path. Enforcement adds the shim to an approved server's launch line — one exec of a small native binary that re-checks a cached decision in well under a millisecond, then hands off to the real server. A blocked server is simply absent from the config. Every rewrite is checksummed, backed up, and reversible with one command, and your real secrets and hook commands are never written into the rewritten file.
How is this different from other MCP scanners? +
Three things define Talyx. Scope: it covers plugin and extension ecosystems, skills, hooks, LSP servers and instruction files across 27 agents — not just the MCP server config. Depth: a real tree-sitter AST with function-scoped, interprocedural source-to-sink taint — it proves a secret reaches the network rather than noting that both appear in a file. Enforcement that survives: a blocked server is physically removed from the config, and the optional live proxy (init --live) fails open to that static gate, so your protection never silently vanishes when a process is not running. Compare it against anything you like — the full capability list is on this page and every line is in the open repository.
What does `talyx init --live` do? +
It keeps the Talyx shim between your agent and each approved MCP server for the whole session, inspecting the JSON-RPC traffic on top of the launch-time scan. It scans the initialize / tools/list / resources/list / prompts/list handshake responses for injection and exfil directives, records a trust-on-first-use snapshot of each server's tool list and flags a mid-session rug pull (a tool swapped or added after you approved it), and scans tool-call results for a payload smuggled back as "file contents". Per level (TALYX_PROXY_LEVEL: quiet / balanced / strict) it logs, replaces a poisoned response with a JSON-RPC error, or ends the session. It is opt-in while it builds real-session mileage.
Won't the live proxy break my agent session? +
It is designed not to. It is opt-in (plain init never enables it), it is the same process your agent already spawns for the server (no daemon), and it fails open: if the proxy ever hits an internal error it falls back to exactly the launch-time protection you would have without --live. TALYX_NO_PROXY=1 is a hard per-launch kill switch, and running plain talyx init again downgrades the config. Large tool results are forwarded before inspection, so bulk traffic gets no added latency. We will not flip it on by default until it has real multi-hour session mileage.
Does the live proxy send my traffic anywhere? +
No. Every message is inspected locally by the shim. Findings are appended to ~/.talyx/sessions/<date>-<pid>.jsonl and summarised by `talyx status`; nothing about your traffic, your code or what was found leaves the machine. TALYX_PROXY_LOG can capture a full local transcript for debugging.
Can I write my own rules for the proxy? +
Yes — guardrails. A local YAML file (~/.talyx/guardrails.yaml, or per-project, or $TALYX_GUARDRAILS) whose rules the proxy runs on every JSON-RPC message on top of the built-in detectors. A rule matches by direction, method and path conditions (contains / regex / glob / equals / exists / gt-lt, with wildcards in the JSON path) and does one of: allow (forward, skip the built-in scan), warn (log), redact (strip matched strings), or block (the message never reaches its peer — a blocked tools/call gets a JSON-RPC error back and the server never sees it). Validate with `talyx guardrails check`; start from `talyx guardrails example`.
How does the advisory feed differ from the behaviour analysis? +
The AST, taint and content analysis catch code and text you have never seen before, on behaviour alone. The advisory feed catches artifacts the security community has already disclosed — matched by identity, not behaviour: a package name and affected version range, an npm publisher, a remote host, a source-repo owner, or a typosquat name pattern. It ships as a small hand-curated file inside the binary (every entry carries a public reference URL), works fully offline, can be overridden by ~/.talyx/advisories.json or $TALYX_ADVISORIES, and is updated with `talyx advisories refresh` (fetch over HTTPS, validated before it replaces anything). A confirmed-malicious match adds a decisive penalty, suppresses any reputation discount (a trusted publisher in the known-bad list means the account is compromised) and forces a block; a bounded advisory — a CVE fixed in a later version, say — forces a review. Inspect it with `talyx advisories list` or check one package with `talyx advisories check <name> --version <v>`.
How is enforcement reversible? +
Every config Talyx rewrites is checksummed first and the original entry is stored. `talyx allow <id>` restores a blocked server exactly as it was, including a stripped remote entry. It never embeds your secrets or your real hook commands into a rewritten file — the shim reads them from a local store keyed by hash.
Which agents are supported? +
27 in total: Claude Code (and its plugin ecosystem), Claude Desktop, Cursor, Codex, Windsurf, Devin CLI, Antigravity (and its plugins), Gemini CLI (and its extensions), GitHub Copilot CLI, VS Code Copilot, OpenClaw, Amp, Kiro, Amazon Q, Continue.dev, Cline, Roo Code, Zed, JetBrains AI, opencode, Tabnine, Cody, Goose, Aider, OpenHands, Crush and Warp — plus a generic fallback for anything else with an mcpServers-shaped config.
Does the enforcement shim stop protecting if it crashes? +
No. Talyx is a launch-time gate plus a per-launch shim, not an always-on proxy. A blocked server is physically removed from the config, so it stays blocked whether or not any Talyx process is running. There is no window where killing a background process drops your protection.
How does the license work? +
One lifetime key per developer — pay once, no subscription, no renewals. Activate on up to 3 machines. `init` checks the key with Lemon Squeezy on activation and at most once a week after; offline, it keeps working for 30 days before asking you to reconnect. The enforcement shim never checks a license, so protection you have already set up keeps working no matter what. `scan` and `status` run unlicensed so you can evaluate.
Do you offer team or volume pricing? +
Yes — volume pricing for 5 or more developers. The product is identical: one lifetime key per developer, each good for 3 machines. Email hello@talyx.dev.
Is there a refund policy? +
14-day no-questions refund through Lemon Squeezy, our merchant of record. If Talyx does not fit how your team works, you get your money back.
Is it open source? Can I evaluate it first? +
The source is available for review, not open source in the OSI sense — it ships under a proprietary source-available license (LICENSE in the repo) that lets you read, compile, run and security-audit it freely, and run the scanner without a key, while enforcement and redistribution need a license. Every regex, score contribution and threshold is in the repository and covered by tests, many proven against live adversarial fixtures. A time-limited evaluation key is available on request for security teams doing a formal review.