Skip to content
Back to skills

Gray

ASecurity

Run the gray coding agent: one-shot prompts, JSON output, run budgets, session resume, scheduled jobs. Use when asked to start gray, hand a task to gray, or continue/resume a gray session. Do not use for editing files yourself, and do not use merely because a background task might help — gray is a separate agent with its own tools and its own context.

  • 17 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
ai-agentsrustbashexpressapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add vstaln/gray --skill gray --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gray?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gray
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vstaln-gray/badge)](https://www.skillsdirectory.com/skills/vstaln-gray)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gray
description: "Run the gray coding agent: one-shot prompts, JSON output, run budgets, session resume, scheduled jobs. Use when asked to start gray, hand a task to gray, or continue/resume a gray session. Do not use for editing files yourself, and do not use merely because a background task might help — gray is a separate agent with its own tools and its own context."
---

# gray

Gray is a coding agent CLI written in Rust: a provider loop, tools, sessions,
auto-compaction and cron. Callers that are not a human at a terminal should
always use `-p`. The bare `gray` REPL takes over the terminal and needs a TTY.

## Learn the current CLI

The installed binary is the authority for syntax. Run `gray --help` before
assuming a flag or subcommand exists; do not trust a remembered flag list.

## One-shot

```bash
gray -p "fix the failing test in crates/gray-tools"
gray -p "..." --json           # versioned NDJSON progress, then a final result
gray --json --input-json task.json    # structured envelope; path or "-"
```

`--json` requires `-p` or `--input-json`.

## Exit codes

- `0` the turn finished
- `1` the turn failed
- `3` provider or infrastructure failure (retryable)

The `--json` result carries a `code` (`auth_failed`, `rate_limited`,
`context_overflow`, `loop_detected`, ...), a `retryable` flag, and a `hint`
naming the command that fixes it. Read the hint instead of retrying blindly.
A failed turn may already have changed files.

## Budgets

```bash
gray -p "..." --json --max-turns 20
gray -p "..." --json --max-requests 40
gray -p "..." --max-cost-usd 2.00
gray -p "..." --max-wall-secs 900
```

## Bare runs

```bash
gray -p "..." --bare             # or GRAY_BARE=1
```

Mini-swe-agent shaped: a one-line system prompt (no workflow, no working
directory) and plain blocking `bash` (no background jobs); no compaction, so a
run that fills the window stops. No `~/.gray/AGENTS.md`, memory, skills,
project AGENTS.md/CLAUDE.md, plugins, cache warming or update check.
Model and provider settings still apply. For benchmarks and reproducible runs.

## Sessions

```bash
gray -c                          # continue the most recent conversation
gray --session <id>              # resume a specific session (id prints on exit)
gray resume                      # interactive picker
gray sessions prune --older-than-days 90
```

Transcripts are JSONL under `$GRAY_HOME` (default `~/.gray`), written 0600,
with parent-id branching.

## Scheduled jobs

```bash
gray cron add "0 9 * * 1-5" "summarize yesterday's commits" --deliver local
gray cron list
gray cron show <id>
gray cron remove <id>
```

A schedule is `every 1h`, `30m`, `in 10m`, an RFC3339 timestamp, or a cron
expression. `add` runs validation inline; the supervised gateway daemon fires
the jobs. Delivery is a file by default; `--deliver origin` appends back to a
chat session.

## Other subcommands

`gray find`, `gray grep`, `gray plugin list`,
`gray gateway status`, `gray update`.

## What gray can do

Bash is the main tool. Image, search and background jobs arrive as
bash-claimed commands rather than extra tools. A long or silent command
becomes a background job: poll it with the job output/status actions and a
wait, never with a tight sleep loop, and a silent blocking command is turned
into a job after 600 s rather than hanging the turn.

## Rules when driving gray

- Prefer `-p`. Do not launch the bare REPL from a script or another agent.
- Do not probe a subcommand by omitting arguments: several accept defaults and
  will execute. `gray cron add` with no schedule fails, `gray sessions prune`
  with no threshold does not.
- Output is redacted per line, but redaction does not stop a tool from sending
  an environment variable somewhere else. Never ask gray to print API keys.
- Gray has no approval prompt and runs with the user's privileges. Ask before
  destructive work; `gray --help` will not warn on gray's behalf.

## Extending gray

- `gray --skill` prints this file.
- `/skill` inside the REPL installs skills from disk.
- `gray --dump-manifest` prints the merged plugin manifest as JSON.

Files in this skill

  • Cargo.toml1.5 KB
  • assets/logo.txt270 B
  • assets/logo_small.txt115 B
  • assets/providers.json26.6 KB
  • build.rs391 B
  • gray-skill.md3.6 KB
  • src/account.rs25.9 KB
  • src/ask.rs20.2 KB
  • src/ask_tests.rs4 KB
  • src/auth/broker.rs7.1 KB
  • src/auth/broker_tests.rs11.9 KB
  • src/auth/mod.rs299 B
  • src/auth/store.rs8 KB
  • src/auth/store_tests.rs4.1 KB
  • src/cache.rs13.6 KB
  • src/cache_tests.rs14.3 KB
  • src/compact/mod.rs5.1 KB
  • src/compact/mod_tests.rs24.1 KB
  • src/compact/policy.rs2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…