Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

A scay session: the model writes fib.py, asks for approval, runs it, and reports the result

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.

First run: scay guides you through /model, listing installed Ollama models

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.

About

small coding agent in go

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages