astrid
Astrid is a portable, capability-secure operating system for composable software.
Install / Use
claude mcp add astrid-runtime -- npx -y github:astrid-runtime/astridIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
SecuritySupported Platforms
Our assessment of astrid
astrid scores 94/100 on our quality scale, 301st of 1,099 Security skills we index (top 28%).
Its MCP Server is 19 KB long, well organised into 18 sections with 16 code examples: a thorough specification that gives an agent plenty to work with.
With 10,291 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated today, so astrid is actively maintained.
- Our last check on 2026-10-20 found the source still online.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 95/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
astrid compared with similar skills
All 4 of these similar skills score higher than astrid; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| astrid (this skill)by astrid-runtime | 94 | 10.3k | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 109.2k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 97.9k | today | MCP Server |
Frequently asked questions
- How do I install astrid?
- Run
claude mcp add astrid-runtime -- npx -y github:astrid-runtime/astrid. The install tabs above show the steps for each supported agent. - Which AI agents does astrid work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is astrid safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is astrid still maintained?
- The repository was last updated today, so astrid is actively maintained.
Skill content
View source on GitHubAstrid
Software should compose without inheriting each other's authority.
Astrid is an operating-system project for software built from WebAssembly capsules. Today it runs as a portable user-space runtime on macOS and Linux; the direction is a standalone operating system. This release is the hosted runtime, not a bootable OS image.
Run components in a sandbox, connect them through typed interfaces, and give each principal its own capabilities and durable state. Install, upgrade, and remove capsules while the runtime is running.
Use it to build agent systems, tools, services, or your own distribution. Astrid does not choose a product, model provider, agent loop, or user interface for you.
Agents make the problem urgent: a model can choose what to do, but that should not make the model the authority that permits it. Astrid separates those jobs. The same foundation serves software without an LLM—components can be replaced and composed without putting application policy into the kernel.
- Compose behavior: capsules communicate through an event bus and versioned interfaces; the kernel routes requests rather than owning application logic.
- Make authority explicit: filesystem, network, process, and IPC access are checked at runtime boundaries, not entrusted to prompts.
- Keep state portable: content-addressed storage, deduplication, and recovery back principal-owned data. Mount it through macOS FSKit or Linux FUSE.
Get started · Write a capsule · Read the Book · Release notes
Quick start
Install Astrid using one of the options below, then start an uncomposed runtime—no model account or distribution required:
astrid --version
astrid start
astrid status
astrid capsule list
astrid stop
status reports the running daemon; a fresh uncomposed runtime has no product
capsules. stop shuts it down and retires its working state into
astrid.volume. Starting again restores the working projection.
Next, build your first capsule, or choose a distribution you
trust with astrid init --distro <source>. A distribution supplies the capsule
composition and configuration; Astrid does not select one implicitly. See
initial setup for repository, local-manifest, and signed-bundle
inputs.
Start with the Book for the architecture or the Contributor Handbook to contribute.
Why Astrid exists
Agent frameworks put trust in the prompt. Astrid puts it in the runtime. An agent is untrusted code executing on your machine with access to your files, your network, and your credentials. Telling it to behave is not a security boundary. An OS-grade boundary is.
- Cryptographic capability model. Every file path, network host, and tool is a signed ed25519 grant scoped to a resource pattern, principal-bound, expiry-checked, and globally revocable. No grant, no access.
- WASM sandbox with no ambient authority. Capsules run in Wasmtime with no syscalls, no file descriptors, and no host memory. Every external effect is a capability-checked host call over a WIT-typed ABI.
- The kernel is dumb. It instantiates an event bus, loads capsules, and routes IPC bytes under a capability ACL. It has no LLM handles, no conversation state, and no tool registry. All intelligence lives in capsules, so a capsule bug cannot corrupt shared kernel state.
- Per-principal everything. Each identity gets isolated capsule access, KV data, secrets, home directory, quotas, and audit chain. One principal can never read another's namespace, and it fails closed if the caller cannot be resolved.
- Signed, hash-linked audit chain. Each entry seals the hash of the one before it and is signed. Break the chain and the tampering shows.
- Live capsule lifecycle. Install, upgrade, and remove capsules on a running daemon. No restart.
How it works
Frontends (the CLI, the HTTP gateway, Discord, and so on) are uplinks: protocol clients that
connect to the daemon over a Unix domain socket and speak in IPC events. There is no Frontend
trait. An uplink publishes events and receives responses like any other bus participant.
flowchart TB
CLI[CLI] -->|IPC events over Unix socket| Kernel
HTTP[HTTP gateway] -->|IPC events| Kernel
Discord[Discord] -->|IPC events| Kernel
Uplinks[Other uplinks] -->|IPC events| Kernel
subgraph Runtime[Astrid]
Kernel[Kernel: astrid-daemon<br/>dumb event router<br/>event bus - capability ACL - audit chain - Wasmtime sandbox]
Capsules[WASM Component capsules: wasm32-unknown-unknown<br/>providers - orchestrators - tools - fs - http - sessions - registry - identity]
end
Kernel -->|capability-checked host calls<br/>astrid:* WIT ABI| Capsules
Capsules communicate exclusively through the bus. Each declares what it needs and what it provides
in a Capsule.toml manifest with typed [imports]/[exports] tables; the kernel resolves the
dependency graph by topological sort and boots capsules in order. Tools are an IPC convention, not a
kernel concept: a tool capsule intercepts tool.v1.execute.<name>, and the kernel never sees a tool
schema.
The host ABI is the WebAssembly component model with versioned astrid:* WIT packages:
fs, io, kv, ipc, net, http, sys, process, approval, identity, elicit, and
uplink. Guests import only what their manifest allows, and every call is capability-gated at the
boundary.
The security model
Astrid's security is decomposed. There is no single gate every action funnels through. A capsule has no ambient authority, and authorization is enforced by independent, per-area mechanisms, each fail-closed and each enforced where the effect actually happens.
flowchart TB
Action[A capsule action] --> Sandbox[WASM sandbox<br/>no syscalls, file descriptors, or host memory<br/>external resources are capability-checked host calls]
Action --> Manifest[Manifest gate<br/>declared file, network, and process allow-list<br/>empty is deny-all; path traversal and SSRF defenses]
Action --> IPC[IPC ACL<br/>declared publish and subscribe topics only<br/>per-principal routing]
Action --> Capability[Capability token<br/>ed25519, principal-bound, scoped, expiring, revocable<br/>per-device tokens can be subset-scoped]
Action --> Approval[Approval gate<br/>once - session - always - deny<br/>allow always mints a token; local egress elicits consent]
Action --> OS[OS sandbox<br/>bwrap on Linux - seatbelt on macOS for native subprocesses]
Action --> Audit[Audit chain<br/>signed, hash-linked JSONL decisions and calls<br/>split per principal and independently verifiable]
These mechanisms are real and independently tested. There is no unified interceptor orchestrating them. The five-layer gate chapter of The Astrid Book walks each layer against the source.
Install
Release archives:
Download the archive for your machine from
GitHub Releases. Keep its
companion binaries and platform files together when extracting it; add the
extracted directory to your PATH.
The 2026.9.0 release targets are:
| Platform | Architectures | Filesystem frontend | |---|---|---| | macOS | Apple Silicon, Intel | FSKit on macOS 26+; signed app and extension approval required | | Linux GNU | x86_64, ARM64 | FUSE | | Linux MUSL | x86_64, ARM64 | FUSE |
Windows is tested in CI but is not included in this release's archives. For migration and platform limitations, read the 2026.9.0 upgrade notes. Versions now follow year.month.patch.
Homebrew (macOS and Linux):
brew tap astrid-runtime/tap
brew install astrid
From crates.io (requires Rust 1.95+):
cargo install astrid
From source:
git clone https://github.com/astrid-runtime/astrid
cd astrid && cargo build --release # binary at ./target/release/astrid
The core tools are listed below. Platform release archives additionally include their filesystem provider and, on macOS, the signed AstridFS app and management scripts. A Cargo install is not a substitute for that signed macOS bundle.
| Binary | Role |
|---|---|
| astrid | CLI uplink. Connects to the daemon over the Unix socket. TUI, headless mode, capsule and agent management. |
| astrid-daemon | The kernel process. Loads capsules, routes IPC, enforces capabilities, runs the sandbox. |
| astrid-build | Capsule compiler and packager. Builds to wasm32-unknown-unknown. |
| astrid-emit | Stdio-to-bus bridge for external hook producers. |
Initial setup
astrid init --distro <source> fetches a distro (a curated capsule bundle), presents any selection
groups declared by that distro, and prompts for its required configuration. Secrets are stored per
principal in the secret store, never passed on the command line. init writes a Distro.lock
pinning every capsule by BLAKE3 hash, so the same explicit distro input reproduces the same fleet.
astrid init --distro @yourorg/your-distro # repository distro
astrid init --distro ./Distro.toml # local manifest
astrid init --distro ./bundle.shuttle --offline # signed bundle, no network
astrid init --distro @yourorg/your-distro --yes # non-interactive defaults
When a distro includes an LLM provider, onboarding can discover that provider's live model list from
its /v1/models endpoint. If the distro also includes an agent loop, confirm that it is ready before
starting a session:
astrid doctor # daemon up? capsules ready? an LLM available?
astrid chat # interactive session; the daemon auto-starts on first use
astrid models # list the current provider's models (a registry-capsule verb)
Headless and scripting
astrid -p "summarize the git log" # single prompt, prints and exits
git diff HEAD~1 | astrid -p "write a commit message" # stdin is appended to the prompt
astrid -p "fix all failing tests" --yes # auto-approve tool requests
astrid -p "continue" --session "$SID" # resume by id or name
Daemon lifecycle
astrid start # persistent daemon (survives terminal close)
astrid status # PID, uptime, connected clients, loaded capsules
astrid ps # loaded capsules and their lifecycle state
astrid stop # graceful shutdown
astrid update # authenticate, verify, and install the latest release
An explicit astrid start is persistent. Automatically started MCP gateways
and ephemeral daemons instead follow client-connection lifetime: quiet connected
clients keep them alive, and they retire after the final client disconnects.
Mount durable state
Once the platform filesystem frontend is installed and enabled, a principal can mount its view through the CLI:
astrid start
mkdir -p /tmp/astrid-view
astrid --principal default storage mount --as default /t
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
109.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
97.9k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
