Skip to content

camelot 0.1.0

Choose a tag to compare

@trans trans released this 21 Sep 21:05
· 27 commits to main since this release

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 + path addresses the widget again
  • Password fields are always redacted, in snapshots and in the event stream
  • Browsers (Firefox, Chromium) expose page content once toolkit-accessibility is 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.