camelot 0.1.0
First release: the semantic layer of a desktop-to-AI context bridge.
Commands — apps, windows, tree, focus, at, context read the AT-SPI2 accessibility tree and report as text, JSON or YAML; watch streams window/focus/text events; mcp serves the commands as Model Context Protocol tools over stdio (register with claude mcp add --scope user camelot -- camelot mcp).
Highlights
- Trees are pruned of anonymous layout containers by default; hidden widgets are skipped; every node keeps its real index path so
pid+pathaddresses the widget again - Password fields are always redacted, in snapshots and in the event stream
- Browsers (Firefox, Chromium) expose page content once
toolkit-accessibilityis on — see the README - Wayland-aware: window-relative coordinates, since toolkits report no screen position there
- The event stream drives GLib's main context from inside Crystal's event loop — no polling, no second thread
Packages for Arch, Debian/Ubuntu and Fedora are attached (built by the Package workflow). Runtime dependency is just at-spi2-core.
Built with Jargon (JSON Schema CLI) and gi-crystal.