GRASP (General Runtime for Agent Shell Primitives) is a mount-based virtual userland for AI agents. It provides a unified namespace where files, tools, APIs, and knowledge bases are all accessed through standard filesystem operations and a built-in shell.
Conceptual discussions about why GRASP exists and how it works.
- Why GRASP — The problem GRASP solves, naming rationale, and where it fits in the agent ecosystem
- Architecture — Core design: VirtualOS, MountTable, Shell
- Provider Model — Capability-based interfaces and runtime detection
- Shell as Universal Interface — Why shell commands beat tool APIs for agents
- Integration Strategy — MCP, 9P, OpenViking, and cross-language access
- Union Mount and Cache — Plan 9–style union layers, cache-as-configuration, and three invalidation strategies
Step-by-step learning for newcomers.
- Getting Started — Set up GRASP, mount providers, run shell commands
- Cached Feeds — Build a read-through cache (dbfs over httpfs) with union mount
Practical recipes for common tasks.
- Create a Custom Provider — Implement your own data source as a mountable provider
- Build an Agent with Shell Routing — Create an AI agent that routes
!xxxto shell, other input to LLM - Reactive Agents with Hooks — Use Watch and OnExec hooks for contextual assistance
- Union Mount and Cache — Use
bind, build cached unions in code, and set up invalidation
Precise descriptions of APIs and interfaces.
- Provider Interfaces — Complete API reference for all provider interfaces
- Built-in Providers — Detailed documentation for all included providers (MemFS, LocalFS, GitHubFS, HTTPFS, MCP, etc.)
- Union Mount — UnionProvider, Layer, BindMode, and the
bindcommand