Skip to content
Agent docsIf you are an agent, follow this link for raw documentation.Open raw docs

FERRISGRIDVisual control for local agents

Turn screens into coordinates, and coordinates into action.

$ ferrisgrid observe
## FerrisGrid Observation
- session: .ferrisgrid/session-...
- step: 1
- coordinate_mode: normalized-1000
- screen_id: screen-1
- screenshot: .ferrisgrid/.../screen-1.png

$ ferrisgrid act --file .ferrisgrid/action.md
status: executed

The idea

Computers already show the state an agent needs: pixels, windows, buttons, text fields, menus. FerrisGrid makes that state actionable by pairing screenshots with deterministic coordinates, constrained actions, and local traces.

FerrisGrid gives the machine eyes, gives the model a map, and lets Rust move fast.

Install

bash
cargo install ferrisgrid-cli
ferrisgrid doctor

An equivalent TypeScript npm package is available from BrunoV21/FerrisGrid-CLI-ts:

bash
npm install -g ferrisgrid-cli
ferrisgrid doctor

Feature requests and protocol changes belong in BrunoV21/FerrisGrid-CLI.

First observe/action loop

bash
ferrisgrid observe

The agent reads the returned screenshot path and coordinate metadata, decides one action, then calls:

bash
ferrisgrid act --file .ferrisgrid/action.md

Development from source

bash
git clone https://github.com/BrunoV21/FerrisGrid-CLI.git
cd FerrisGrid-CLI
cargo build
cargo test --workspace
cargo run -q -p ferrisgrid-cli -- doctor

Next steps

  1. Read the getting started guide.
  2. Learn the command surface.
  3. Run FerrisGrid inside a Docker Linux workspace.
  4. Open issues and feature requests on GitHub.

FerrisGrid - terminal-first visual control for local agents