Help us shape the future of Go! Take the 2026 Go Developer Survey

scay

command module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2026 License: MIT Imports: 2 Imported by: 0

README

scay

scay — a small coding agent for your terminal. One tiny Go binary that reads, writes, greps, edits, and runs commands in your project, driven by the LLM of your choice — OpenAI, Anthropic, Google Gemini, or a local model via Ollama.

Philosophy: small, lightweight, fast, readable. The opposite of an IDE-in-a-terminal. One dependency (the official MCP SDK), no vendor SDKs, nothing else to compile.

Install

Prebuilt binary (macOS or Linux):

curl -fsSL https://raw.githubusercontent.com/robitec97/scay/main/scripts/install.sh | sh

With Go 1.25+:

go install github.com/robitec97/scay@latest
# or from a checkout:
go build -o scay .

Quick start

Everything happens inside one interactive session. Open it:

scay

First time, scay walks you through setup right there:

  1. /auth — pick a provider and authenticate. OpenAI accepts an API key or an experimental ChatGPT subscription login; Ollama needs neither. Credentials are stored with 0600 permissions under ~/.config/scay.
  2. /model — pick the provider, model, and thinking effort. With Ollama, the menu lists whatever models you actually have installed.
  3. Type what you want. Anything that isn't a /command goes to the model.

That's it. Settings are remembered, so next time you just run scay and type.

Using it

The model works with six built-in tools: read, list, grep, edit, write, and bash. Reading is free; anything that changes your machine (write / edit / bash, and every MCP tool) stops and asks first:

[scay] run: python3 fib.py
Allow? [y/N]:

Slash commands, inside the session:

Command What it does
/model Pick provider, model, and thinking effort (applies live)
/auth [provider] Authenticate; OpenAI offers API key or experimental ChatGPT login
/mcp Manage MCP servers — add, list, remove, get, tools
/compact Squash a long history into a summary, freeing context
/clear Start the conversation over
/help The list above, in your terminal
/exit Quit (Ctrl-D works too)

Ctrl-C interrupts the current turn — it aborts the model call or running tool without killing your session.

And the entire command surface outside the session:

scay          # the interactive session
scay yolo     # same, but every tool action is auto-approved — use with care
scay update   # self-update to the latest release
scay version  # print the version

Providers & authentication

Provider Authentication
Anthropic ANTHROPIC_API_KEY
OpenAI OPENAI_API_KEY, or experimental ChatGPT subscription login via /auth openai
Google Gemini GEMINI_API_KEY or GOOGLE_API_KEY
Ollama (local) no key — just ollama serve (OLLAMA_HOST to point elsewhere)

Environment variables override the config file, so CI and one-off shells work without touching your saved setup. ChatGPT login relies on the Codex protocol and is explicitly experimental. Responses stream on all four backends, and transient API failures retry automatically with backoff.

MCP servers (optional)

scay is an MCP client: plug in external tool servers and the model can use them like built-ins (behind the same approval gate).

/mcp add fs -- npx -y @modelcontextprotocol/server-filesystem .
/mcp tools        # connect and list what the model will see

Servers live in the global config, or in a per-project .mcp.json (/mcp add --project …) that you can commit and share.

Status

Early development. See ROADMAP.md for what works today and what's next, and docs/OVERVIEW.md for the architecture and the reasoning behind it.

License

MIT — see LICENSE.

Documentation

Overview

Command scay is a small coding agent for the terminal.

Directories

Path Synopsis
internal
agent
Package agent implements scay's tool-use loop: it drives a Provider with a flat conversation history, dispatches the model's tool calls, feeds results back, and stops when the model finishes or an iteration cap is hit.
Package agent implements scay's tool-use loop: it drives a Provider with a flat conversation history, dispatches the model's tool calls, feeds results back, and stops when the model finishes or an iteration cap is hit.
cli
Package cli is scay's command-line surface.
Package cli is scay's command-line surface.
config
Package config loads and saves scay's on-disk settings and resolves the effective credentials for each provider (config file overlaid with env vars).
Package config loads and saves scay's on-disk settings and resolves the effective credentials for each provider (config file overlaid with env vars).
mcp
Package mcp connects scay to Model Context Protocol servers (stdio and Streamable HTTP) and exposes their tools to the agent as ordinary tools.Registry entries, namespaced mcp__<server>__<tool>.
Package mcp connects scay to Model Context Protocol servers (stdio and Streamable HTTP) and exposes their tools to the agent as ordinary tools.Registry entries, namespaced mcp__<server>__<tool>.
provider
Package provider is scay's single abstraction over four LLM backends (OpenAI, Anthropic, Google Gemini, Ollama).
Package provider is scay's single abstraction over four LLM backends (OpenAI, Anthropic, Google Gemini, Ollama).
tools
Package tools implements scay's built-in coding tools (read, list, grep, edit, write, bash), a registry that exposes them to the agent, and an approval gate for the side-effecting ones.
Package tools implements scay's built-in coding tools (read, list, grep, edit, write, bash), a registry that exposes them to the agent, and an approval gate for the side-effecting ones.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL