agentlaneagentlane

2.3How it worksMarkdown

The CLI, the MCP server and the plugins

agentlane is one CLI. Agents reach it three ways: the CLI itself from a shell, the MCP server for look, run and screenshot, and the plugins and hooks that wire both into each agent. This page says which one to use for what, and why skills write every command as node_modules/.bin/agentlane.

The CLI

Everything agentlane does is a command of one CLI, installed in the project as a dev dependency. Lanes, up, doctor, the device controls, evidence and the driver are all there, and every command an agent or a script needs works from a shell:

node_modules/.bin/agentlane up
node_modules/.bin/agentlane look --interactive
node_modules/.bin/agentlane release

Because it is a project dependency, each checkout runs the version its own lockfile pins, and two projects on one machine can run different versions. CLI lists every command.

The MCP server

agentlane mcp serves three tools over MCP on stdio: look, run and screenshot. They do what the commands of the same names do, for agents that would rather call a tool than run a shell command. screenshot returns the image itself, so the agent sees the screen without opening a file. init registers the server for every agent, under the name agentlane. MCP server lists each tool's arguments.

The server finds the lane from the session that runs it, so the tools take no device id or browser session. They can't reach another lane's device.

The plugins and hooks

init writes each agent's own files: the skills, the MCP server entry and two hooks. The guard hook runs before each shell command and denies one aimed at another lane's simulator, emulator or browser. The release hook frees the session's lanes when the session ends. The device guard and session hooks has the details.

Claude Code can load all of that as a plugin instead, which also puts agentlane on the Bash tool's PATH. Codex, Cursor and Gemini CLI can install the plugin's skills and MCP server from manifests in the same folder; their hooks still come from init. Install for your agent covers each agent.

Skills

The skills tell an agent how to use all of this: setup wires a project, dev-loop is the contract for running the app, drive drives it, and the two verification skills write and maintain the project's run skill. The package carries their text, so a project's skills always match its installed version. The skills shows each one.

Which to use

ToUse
Bring the app up, check it, release itThe CLI: up, doctor, release
Read the screen, tap through a flow, see itThe MCP tools, or look, run, screenshot from a shell
Drive a browser laneThe driver's own CLI under exec, and look to read the page
Change a device setting, keep evidenceThe CLI: device, evidence
Run the project's own flows and testsexec -- <command>

Why node_modules/.bin/agentlane

Skills and run skills write every command as node_modules/.bin/agentlane <command>, run from the project root. That path works in every agent's shell. A bare agentlane is on the PATH only in Claude Code with the plugin, and a skill has to work in whichever agent reads it. You can type npx agentlane yourself; it runs the same binary.