By sheeki03
Record browser interactions to generate replayable API skills for any website. Explore sites interactively to discover endpoints, validate skills via dry-runs and volatility checks, run health diagnostics, and replay actions through self-optimizing tiers using MCP server.
Run Schrute health checks and diagnostics
Start a browser session to explore a website and discover its API endpoints
Start recording a browser action to generate an API skill
List, inspect, or manage Schrute skills
Check Schrute daemon and engine status
Guides interactive browser exploration of a website to discover API endpoints, record actions as replayable skills, and identify automation opportunities. Use when user says "explore this site", "help me discover APIs", "walk me through this website", or "what can I do on this site". <example> Context: The user wants to discover what APIs a website offers. user: "Help me explore https://api.github.com and find useful endpoints" assistant: "I'll launch the exploration-guide agent to systematically explore the site." </example> <example> Context: The user is new to Schrute and wants to try recording skills. user: "Walk me through exploring a website with Schrute" assistant: "I'll use the exploration-guide to help you interactively explore and record skills." </example>
Diagnoses failing Schrute skill executions by inspecting request definitions, authentication state, tier configuration, and parameter mappings. Use when user says "skill failed", "debug this skill", "why isn't my skill working", "skill execution error", or "fix this skill". <example> Context: A skill execution returned an error. user: "My search-repos skill keeps failing with a 401 error" assistant: "I'll launch the skill-debugger agent to diagnose the authentication issue." </example> <example> Context: A skill produces unexpected results. user: "The get-user skill returns wrong data, can you investigate?" assistant: "I'll use the skill-debugger to inspect the skill definition and test execution." </example>
Validates recorded Schrute skills for correctness, checking parameter definitions, side-effect classification, domain allowlists, and tier configuration. Use after recording new skills or when skill execution fails unexpectedly. <example> Context: The user just finished recording a browser action and schrute_stop completed. user: "Are the skills looking correct?" assistant: "I'll use the skill-validator agent to review the newly generated skills." </example> <example> Context: The user has recorded several skills across multiple sites. user: "Validate all my recorded skills" assistant: "I'll launch the skill-validator agent to check all skills for issues." </example> <example> Context: A skill execution failed unexpectedly. user: "Why did search-repos fail? Check if it was recorded right" assistant: "I'll use the skill-validator agent to dry-run and inspect the skill definition." </example>
Decision guide for choosing between Schrute skill recording and direct browser automation. Compares approaches based on task repeatability, latency needs, and API extraction goals. Use when user asks "which browser tool", "automate this website", "should I use schrute", "browser automation options", or needs help deciding how to approach a browser task.
Comprehensive guide to Schrute's self-learning browser agent workflow, covering skill recording, execution tiers, tier promotion, confirmation system, and security model. Use when user asks "how does schrute work", "record a skill", "schrute tiers", "skill execution", "schrute workflow", "how do I use schrute", or needs help understanding the explore-record-replay cycle.
No model invocation
Executes directly as bash, bypassing the AI model
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Teach your AI a website once. After that, it can repeat the job much faster.
Schrute is for repeated website tasks.
It supports both paths: you can teach it by having it watch what happens in a real browser, or you can let it discover useful backend structure on its own when a site exposes it. Schrute can do either well, and it is up to you which path to use for a given site or task. Either way, it turns what it finds into reusable tools. That means the first run can happen in the browser, or you can start from direct discovery when that fits better, and later runs can often skip the UI and go straight to the site's backend.
If you keep asking an AI to do the same website task over and over, Schrute is the layer that helps it stop starting from scratch every time.
Without Schrute:
With Schrute:
That is especially useful for things like:
npm install -g schrute
schrute setup
Choose the install path that fits your environment:
npm CLI (recommended)
npm install -g schrute
schrute setup
Homebrew
brew install sheeki03/tap/schrute
schrute setup
Docker
Pull the image:
docker pull ghcr.io/sheeki03/schrute:latest
Then run Schrute with persistent data and an auth token:
docker run --rm \
-p 3000:3000 \
-p 3001:3001 \
-e SCHRUTE_AUTH_TOKEN=my-secret \
-v schrute-data:/data \
ghcr.io/sheeki03/schrute:latest
A Docker Hub mirror can also be published when enabled for the repository.
Standalone binaries
Download the latest archive for Linux, macOS, or Windows from GitHub Releases, unpack it, and run schrute.
If you want to use Schrute from an AI client over MCP:
{
"mcpServers": {
"schrute": {
"command": "npx",
"args": ["-y", "schrute", "serve"]
}
}
}
You can use the same learned skills in different ways depending on your workflow:
MCP Best when you want Claude Code, Cursor, Cline, Windsurf, or another MCP client to call learned website actions as tools.
CLI Best when you want to explore, record, inspect, and run skills manually from the terminal.
REST API Best when you want another app, script, or backend service to call Schrute over HTTP.
Python and TypeScript clients Best when you want a lightweight client package instead of calling raw HTTP endpoints yourself.
So Schrute is not tied to one interface. You can teach it a task once, then reuse that same learned task from the interface that fits your workflow.
# 1. Start Schrute
schrute serve
# 2. Open a site in a browser session
schrute explore https://httpbin.org
# 3. Start recording a task
schrute record --name get_ip
# 4. In the opened browser, go to:
# https://httpbin.org/ip
# 5. Stop recording
schrute stop
# 6. Poll the background pipeline job until skill generation completes
schrute pipeline <job-id>
# 7. Run the learned skill
schrute execute httpbin_org.get_ip.v1 --yes
What just happened:
schrute explore https://example.com
schrute record --name my_action
schrute stop
schrute pipeline <job-id>
schrute execute my_skill.v1
schrute skills list --status active
schrute skills search "bitcoin price"
schrute skills show <skill-id>
schrute workflow create --site example.com --name summary --spec '{"steps":[...]}'
schrute workflow run example_com.summary.v1
schrute discover https://api.example.com
schrute doctor
schrute trust
Schrute is no longer just "record and replay." Here is what the current product does, in practical terms:
npx claudepluginhub sheeki03/schruteBrowser automation via MCP - wraps browser-use for AI-driven browser control
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows.
AI-powered browser automation -- lets Claude control real web browsers to navigate, click, type, extract content, and automate workflows
Actionbook MCP server for up-to-date browser automation. Get verified CSS/XPath selectors for any website directly into your agent context.
Web monitoring (Scouts), deep research, and browser automation
Browser automation CLI for AI agents. Navigate pages, fill forms, click buttons, take screenshots, and test web apps.