squire
Squire is a CLI/MCP tool for running short validation, analysis, and compute jobs in clean remote runtimes across a variety of languages and tools.
Help & Discovery: Browse the full command catalog or get usage for a specific command (
--help,--help --json)Identity & Quotas: Check authenticated identity, trust tier, feature flags, and server-side quotas (
whoami)Runtime Verification: Run inline code snippets or scripts in fresh Linux containers for bash, Python, or Node across multiple target environments (
verify)Dependency Validation: Validate dependency manifests in clean environments — currently disabled on the public service due to zero-egress policy (
deps)SQL Sandboxing: Run SQLite or Postgres schema, queries, and migrations in a disposable database sandbox (
sql)Testing: Execute test suites (pytest, npm test, etc.) in clean runtimes across a target matrix for Python, Node, or Bash (
test)Linting & Static Analysis: Run ruff, eslint, or clippy in fresh toolchains to eliminate local environment drift (
lint)Security Auditing: Scan for secrets and run local-config static analysis; dependency audit and remote Semgrep are disabled publicly (
audit)Build Checks: Run offline packaging and build sanity checks for Python or Node, with optional artifact download (
build)Benchmarking: Run short timing/benchmark jobs in clean runtimes for Python, Bash, or Go (
bench)Headless Browser: Run offline headless Chromium, capture screenshots, and download artifacts — no remote URL fetching allowed (
browser)Compilation: Cross-compile Go or Rust code against multiple targets in clean toolchains (
compile)Constraint Solving: Run bounded Z3 or MiniZinc solver jobs in a fresh sandbox (
solve)Quantum Simulation: Run offline Qiskit Aer quantum simulations with optional artifact download (
quantum_simulate)Data Processing: Execute Python data jobs with pandas, polars, and pyarrow in a disposable remote runtime, with optional artifact download (
data)Media Processing: Run Python media/ffmpeg jobs in a disposable runtime with optional artifact download (
media)MCP Integration: Optional MCP stdio wrapper for agent integration with anonymous access
Target environment for cross-environment validation jobs, allowing verification of scripts and applications on specific Debian versions (e.g., debian-12) in clean remote runtimes.
Enables offline media processing and transformation tasks (video/audio manipulation) through the squire media command in ephemeral sandboxes.
Supports data processing workflows using pandas DataFrames through the squire data command for jobs involving CSV and tabular data transformations.
Supports high-performance data processing workflows using Polars through the squire data command for efficient DataFrame operations on large datasets.
Enables running Python test suites using pytest in isolated remote environments via the squire test command for clean validation loops.
Comprehensive support for Python across multiple subcommands (verify, test, lint, build, data, audit) allowing validation, testing, and packaging on various Python versions and target environments.
Provides offline quantum circuit simulation capabilities using Qiskit Aer through the squire quantum simulate command for quantum algorithm validation.
Enables fast Python linting and static analysis using the Ruff tool through the squire lint command.
Supports cross-compilation of Rust code to multiple target architectures (e.g., linux/amd64, linux/arm64) through the squire compile command.
Enables SQL validation and querying against SQLite databases through the squire sql command for database schema and query verification.
Target environment for cross-environment validation jobs, allowing verification of scripts and applications on specific Ubuntu versions (e.g., ubuntu-24.04) in clean remote runtimes.
Squire CLI
Squire is a CLI for running short validation and offload jobs in clean remote runtimes. Use it for cross-environment checks, fresh validation loops, target compilation checks, ephemeral SQL sandboxes, and short heavy jobs that are awkward to run locally.
Quick start
curl -fsSL https://squire.run/install.sh | bash
squire --helpDefaults to:
https://api.squire.run
Works on:
macOS
Linux
WSL
Update later with:
squire updateCommand discovery
Use these first:
squire --helpshows the command catalogsquire --help --jsonshows the command catalog in machine-readable formsquire <command> --helpshows command-specific usage
Prefer --json when another tool or agent will read the result.
For the full generated command catalog, public-policy notes, and examples, see:
docs/commands.generated.md
Task-to-command mapping
Use Squire when a task is environment-sensitive, target-sensitive, or short but heavy.
shell, Python, or Node runtime validation ->
squire verifyshort clean test runs ->
squire testlint or static analysis ->
squire lintGo or Rust target compilation ->
squire compileoffline Qiskit Aer simulation ->
squire quantum simulateSQLite or Postgres validation ->
squire sqldependency, security, secret, or static checks ->
squire auditsolver tasks ->
squire solvepandas, polars, or pyarrow jobs ->
squire dataffmpeg or media transforms ->
squire mediaoffline headless browser verification ->
squire browserpackaging or build sanity checks ->
squire buildshort comparative timing runs ->
squire bench
Public-service note:
depsexists in the CLI, but is currently disabled on the public service under the zero-egress policy
Agent workflows
Squire is intentionally CLI-first and works well in terminal-first coding-agent workflows such as Claude Code, Codex, and shell-driven automation.
Copy and trim the example instruction files in docs/agent/ for your own environment:
docs/agent/CLAUDE.md.exampledocs/agent/SKILLS.md.exampledocs/agent/CODEX.md.exampledocs/agent/squire-usage-guidelines.mddocs/agent/tool-constraints.md
Prefer local execution for tiny trivial checks. Prefer Squire when correctness depends on a fresh environment or when the task is too annoying to run locally.
For per-tool runtime, network, input, output, and public-service constraints, start with:
docs/agent/tool-constraints.mddocs/commands.generated.md
Current public-service limits
browseris offline-only and does not fetch remotehttp://orhttps://URLsdepsis currently disabled on the public service because sandbox egress is not allowedauditsupports secret scanning and local-config static analysis; dependency audit and remote Semgrep configs are disabledquantum simulateis offline-only on the public service
Artifact downloads
Artifact-producing commands can download outputs locally:
squire media --script square.py --input image.png --download-artifacts ./out --jsonUse --download-artifacts <dir> for:
squire datasquire mediasquire browsersquire buildsquire quantum simulate
Command examples
squire verify --lang bash --file script.sh --targets alpine-3.20,ubuntu-24.04,debian-12 --json
squire test --lang python --file test_app.py --cmd "pytest -q" --targets py310,py311 --json
squire lint --lang python --tool ruff --file app.py --json
squire quantum simulate --file shor.py --shots 2048 --download-artifacts ./quantum-out --json
squire audit --secrets --path src --json
squire build --lang python --file pyproject.toml --path src --targets manylinux,musllinux --download-artifacts ./dist --json
squire bench --lang python --file bench.py --targets py310,py311 --json
squire browser --path website/public --screenshot page.png --download-artifacts ./browser-out --json
squire sql --dialect sqlite --query "SELECT 1" --json
squire compile --lang go --file main.go --targets linux/amd64,linux/arm64 --json
squire solve --solver z3 --file constraints.smt2 --json
squire data --script transform.py --input big.csv --download-artifacts ./data-out --json
squire media --script clip.py --input image.png --download-artifacts ./media-out --jsonA tiny runnable quantum example is in examples/quantum/shor.py.
Optional MCP mode
Run the local stdio wrapper:
squire mcp serveThis exposes the same Squire command surface over MCP stdio. Public anonymous access works without login. Squire remains CLI-first; MCP is an optional wrapper.
If you want authenticated identity in an MCP host, optionally run:
squire mcp loginThat prints the SQUIRE_TOKEN and SQUIRE_API_BASE_URL values an MCP host can use.
For Cline on a machine that already has a working local Squire session, the shortest path is:
cline mcp add squire -- squire mcp serveSquire is also published to the MCP Registry as io.github.reidgoodbar/squire.
The registry package is a GHCR-backed OCI stdio server that runs the same squire mcp serve surface and supports:
anonymous access by default
SQUIRE_TOKENoptionalSQUIRE_API_BASE_URLoptional
Registry metadata lives in registry/server.json.
For Cline and other agent-hosted setup, see:
llms-install.mddocs/marketplace/glama.md
Local build
go build -o ./bin/squire ./cmd/squireRelease packaging
./scripts/build-release.shArtifacts go to dist/ and use the same stable names that https://squire.run/install.sh downloads.
License
MIT. See LICENSE.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/reidgoodbar/squire'
If you have feedback or need assistance with the MCP directory API, please join our Discord server