Any model. Real tools. Verified work.

the agent CLI that checks reality.

assay runs local or cloud AI against your real project, lets it use connected tools, and verifies buildable work with actual commands instead of trusting a model's "done".

curl -fsSL https://assay.qbcsys.com/install.sh | sh

Requires Node 18+. Installs assay to ~/.local/bin and the CLI/runtime to ~/.assay.

assay chat showing an order investigation, proposed SQL update, approval, and successful result
Working chat flow: assay investigates with tools, proposes the exact update, waits for approval, then reports the verified result.

Provider flexible

Use Ollama local/cloud, OpenAI, Anthropic, Gemini, Fireworks, OpenAI-compatible endpoints, Claude CLI, or Cursor CLI.

Tool-aware

Connect MCP servers for files, databases, mail, boards, and internal systems. Tool use is logged to a transcript.

Verification-first

For work tasks, assay runs the gate you configure, or auto-runs build/test checks when available.

Screenshots of assay working

The chat UI is built for operational work: ask a question, inspect the proposed change, approve execution, and keep a durable transcript of what happened.

Full assay desktop chat screenshot with successful SKU update
Full desktop chat with connected database context and a completed order-line update.
Cropped assay chat screenshot focused on the proposed update and approval flow
Close-up of the approval pattern: assay proposes the exact operation before execution.

How to use assay

The core flow is intentionally small. Install it, pick an AI, optionally connect tools, then chat or run verified tasks.

Install

Run the hosted installer. It downloads the zero-dependency CLI plus the optional rich TUI when npm is available.

curl -fsSL https://assay.qbcsys.com/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

Choose an AI

Start the CLI and use the setup wizard, or set values directly. API keys are saved centrally in ~/.assay/config.json.

assay
:setup
:provider openai
:model gpt-4o
:key sk-...

Connect project tools

Project tools stay in the project config, so each workspace can have its own MCP servers and validation gate.

:mcp add db node /path/to/db-mcp/server.js
:mcp env db DB_URL=postgres://...
:gate gate.json

Chat or run work

Type normally for chat. Use :run for multi-step work that must finish by passing a real validation check.

What changed in this repo?
:run add a /health route and make the tests pass
:jobs
:resume

Use the rich terminal UI

The TUI supports attachments, clipboard paste, scrollback, streamed output, and the same central config.

assay --tui
assay-tui

Central config, project config

Personal AI settings belong in one central user file. Workspace behavior belongs beside the project.

User config

~/.assay/config.json stores provider, model, host, and provider-specific API keys. Override with ASSAY_CONFIG.

Project config

universal-agent.config.json stores gates, MCP servers, and workspace overrides. Keep committed project configs non-secret.

Precedence

CLI flag, then environment, then project config, then user config, then built-in defaults.

{
  "provider": "openai",
  "model": "gpt-4o",
  "apiKeys": {
    "openai": "sk-..."
  }
}

Downloads

The installer uses these files directly from this hosted site. Manual install is just unpack and symlink.