Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Elytra

Local guardrails for coding agents. Elytra checks what Claude Code, Codex, Grok and Antigravity do (shell commands, file edits, web access and MCP tool calls) and holds consequential actions for your decision before they run.

Elytra is early access software. Everything runs on your machine: the runtime, the console and the decision records. An account is optional.

Website and documentation: https://elytra-labs.vercel.app

Install

Python 3.11 or newer, on macOS or Linux.

pipx install elytra-mcp    # or: python3 -m pip install elytra-mcp
elytra setup               # guided, asks before it changes anything
# restart your agent, then work as usual
elytra open        # review held actions in the local console
elytra status      # what is protected
elytra uninstall   # remove Elytra from every agent configuration

What setup does

  1. Runs the local runtime as a background service (launchd on macOS, systemd --user on Linux).
  2. Installs action hooks for Claude Code, Codex (a local plugin you trust once), Grok and Antigravity.
  3. Wraps local stdio MCP servers for Claude Code, Cursor, Claude Desktop, Windsurf, VS Code, Antigravity, Codex and Grok, with a backup of each configuration.
  4. Offers suggested classifications for recognized MCP servers. Unlisted or changed tools wait for your review.
  5. Applies a guardrail preset.
Preset Behavior
Balanced (default) Reads, tests and builds run. Edits, installs, commits and pushes to working branches run in a clean session. After untrusted content, unrecognized commands and installs ask you, and so do edits unless Elytra inspected that content and found it clean. Sends, protected branches, merges, sensitive files, downloaded scripts and deletes ask you. Sending data out after untrusted reads, or sending secrets, is blocked.
Cautious Reads run. Every change and send asks you. Sending data out after untrusted reads, or sending secrets, is blocked.
Autonomous Agents act freely. Deletes, sensitive files and downloaded scripts ask you. Sending data out after untrusted reads, or sending secrets, is blocked.

In every preset, content that looks like instructions aimed at AI agents makes every change in that session ask, and after the agent reads secrets, sends, pushes and new pull requests ask.

Agent actions are classified as reads, secret reads, untrusted web reads (official documentation sites count as trusted), tests and builds, edits, package installs, sensitive-file changes, unrecognized commands (treated as changes), pushes to working or protected branches, pull requests, sends, downloaded code, and deletes or history rewrites.

Check a setup with elytra doctor. See how any command would be decided with elytra explain "git push origin main".

When an action needs you, Claude Code and Grok show their own prompt with Elytra's reason. Codex, Antigravity, and any agent running with permissions bypassed wait up to ten minutes while Elytra sends a desktop notification; an action nobody approves is denied.

Approve from your phone

Codex, Antigravity and agents running with permissions bypassed wait up to ten minutes when Elytra holds an action. To decide from another device, link a free account (GitHub or Google sign-in):

pipx install 'elytra-mcp[cloud]'   # the link needs the cloud extra
elytra link

Held actions then appear in your dashboard at https://elytra-labs.vercel.app/app/. Your guardrails, history and decisions stay on your machine; only redacted summaries of held actions are sent, never tool results or credentials. A decision is signed, bound to that exact action and checked by your machine before anything runs. If the link is down, the action keeps waiting for you. elytra unlink stops it.

Limits

  • Shell classification is a heuristic. A disguised command, or a script the agent writes and runs, may only be recognized as an unrecognized command, which is treated as a change.
  • Elytra is not a sandbox. It denies agents its credentials and local API on a best-effort basis, but a command it fails to recognize runs as you and can reach what you can, including approving its own held actions. To contain an agent, run it in an OS sandbox or container.
  • After a session reads secrets, flagged content or uninspected content, contacting a site outside the trusted list asks you. Requests made inside a script the agent wrote are not seen.
  • Agent hooks follow each conversation. Wrapped MCP servers cannot tell conversations apart, so what they read counts for every conversation in that agent process.
  • Content inspection is a heuristic. A page with no injection markers can still steer a local edit in Balanced; review diffs before merging, or use Cautious.
  • If the runtime is not running, actions go through with a visible warning, unless you set up with --fail-closed.
  • Remote HTTP MCP servers are not proxied; their calls are seen through agent hooks.

Read what Elytra does and does not establish before relying on it.

Python integration

Orchestrators that create runs explicitly can use the SDK directly:

from mirage_mcp.sdk import RuntimeClient

owner = RuntimeClient()
run = owner.create_run(intent="Inspect an issue", grants=[])
scoped = owner.for_run(run["run_id"], run["run_token"])

See the documentation for exact grants, approvals and the stdio bridge.

Upgrade and uninstall

pipx upgrade elytra-mcp && elytra service restart
elytra uninstall && pipx uninstall elytra-mcp

Local records in ~/.elytra remain until you delete them.

Source: https://github.com/elytra-labs/elytra-mcp · Apache-2.0 licensed. "Elytra" and the Elytra logo are trademarks; see TRADEMARKS.md in the repository.

Metadata

Release files for elytra-mcp 0.5.0a2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elytra-mcp 0.5.0a2
File Size Uploaded Provenance Actions
elytra_mcp-0.5.0a2.tar.gz 633.6 kB Without provenance Details for elytra_mcp-0.5.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for elytra-mcp 0.5.0a2
File Interpreter ABI Platform Actions
elytra_mcp-0.5.0a2-py3-none-any.whl Python 3 none any Details for elytra_mcp-0.5.0a2-py3-none-any.whl

Total release size: 1.1 MB

Release files / elytra_mcp-0.5.0a2.tar.gz

Download URL elytra_mcp-0.5.0a2.tar.gz
Size 633.6 kB
Tags Source
SHA-256 checksum
How to use checksums
799b375927f67221a1e48f1f868148bdbf8f4b7c01f747f112be1807835eb9e7
BLAKE2b-256 checksum
How to use checksums
8faa90cb420b6b9ecaf3263eb2cf8bcab29a3a0e303b369001631bf682d83985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Release files / elytra_mcp-0.5.0a2-py3-none-any.whl

Download URL elytra_mcp-0.5.0a2-py3-none-any.whl
Size 464.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93a68b4ae8dc8e0b49bbcc31e7c47b0e0536960386007c315a009eda2a53233b
BLAKE2b-256 checksum
How to use checksums
62bdd4c3dcc363eb01cec531f86f28e37c94289bdd584d7a10e624d0ac9a2d77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Security for elytra-mcp 0.5.0a2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page