RayStack v1.3.0 · Open source, MIT
Build and review software with your coding agent.
Point your agent at a repo and type /raystack. It works out what you want. Build, and it takes a product from idea to shipped code the way I build: decisions logged once, a plan per slice, and every task built and reviewed by separate agents. Review, and you get a ranked findings report on cost, security, bottlenecks, deploys, scaling, or the database, with evidence and a fix you apply yourself. It's how I build and what I check when I audit someone's stack, written down as agent skills.
Install
One command, every agent
You need git, bash and jq. The PDF export also needs Chrome or Chromium and npx.
Global: every agent on your machine
curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bashRun the command in a terminal: it finds the coding agents on your machine and asks, for each one, whether to install there. Or copy it for your AI agent and paste it in; that version installs for every agent found without asking. Then start a new agent session and type /raystack.
Agents
Open yours for its command, or copy it as a prompt for your AI agent. Install for as many agents as you use; add --project . to install into one repo.
Claude Code
Install RayStack globally for Claude Code: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent claude`, then tell me what it printed.Global folder ~/.claude/skills, project folder .claude/skills (add --project . to the command). Plugin instead: claude plugin marketplace add HarunRRayhan/RayStack, then claude plugin install raystack@raystack. Use the script or the plugin, not both. Only Claude Code enforces the read-only review guard.
Claude (desktop app)
Install RayStack for Claude: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent claude`, then tell me what it printed.Paste into the Code tab of the Claude desktop app, which is Claude Code. The skills go to ~/.claude/skills.
Codex
Install RayStack globally for Codex: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent codex`, then tell me what it printed.Global folder ~/.agents/skills, project folder .agents/skills (add --project . to the command). Plugin instead: codex plugin marketplace add HarunRRayhan/RayStack, then codex plugin add raystack@raystack.
ChatGPT (desktop app)
Install RayStack for ChatGPT: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent codex`, then tell me what it printed.Paste into Codex in the ChatGPT desktop app. The skills go to ~/.agents/skills.
Cursor
Install RayStack globally for Cursor: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent cursor`, then tell me what it printed.Global folder ~/.cursor/skills, project folder .cursor/skills (add --project . to the command).
Grok Build
Install RayStack globally for Grok Build: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent grok`, then tell me what it printed.Global folder ~/.grok/skills, project folder .claude/skills (add --project . to the command). Grok also reads ~/.claude/skills and ~/.cursor/skills, so a Claude Code or Cursor install already covers it. Plugin instead: grok plugin install HarunRRayhan/RayStack --trust.
Grok (app)
Install RayStack for Grok: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent grok`, then tell me what it printed.Paste into the Grok app, where it can run commands on your machine. The skills go to ~/.grok/skills, which Grok Build reads too.
Antigravity
Install RayStack globally for Antigravity: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent antigravity`, then tell me what it printed.Global folder ~/.gemini/antigravity/skills, project folder .agents/skills (add --project . to the command).
Gemini CLI
Install RayStack globally for Gemini CLI: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent gemini`, then tell me what it printed.Global folder ~/.gemini/skills, project folder .agents/skills (add --project . to the command).
GitHub Copilot
Install RayStack globally for GitHub Copilot: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent copilot`, then tell me what it printed.Global folder ~/.copilot/skills, project folder .agents/skills (add --project . to the command).
Windsurf
Install RayStack globally for Windsurf: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent windsurf`, then tell me what it printed.Global folder ~/.codeium/windsurf/skills, project folder .windsurf/skills (add --project . to the command).
Cline
Install RayStack globally for Cline: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent cline`, then tell me what it printed.Global folder ~/.agents/skills, project folder .agents/skills (add --project . to the command).
Kiro
Install RayStack globally for Kiro: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent kiro`, then tell me what it printed.Global folder ~/.kiro/skills, project folder .kiro/skills (add --project . to the command).
Roo Code
Install RayStack globally for Roo Code: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent roo`, then tell me what it printed.Global folder ~/.roo/skills, project folder .roo/skills (add --project . to the command).
Kilo Code
Install RayStack globally for Kilo Code: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent kilo`, then tell me what it printed.Global folder ~/.kilo/skills, project folder .agents/skills (add --project . to the command).
Amp
Install RayStack globally for Amp: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent amp`, then tell me what it printed.Global folder ~/.config/agents/skills, project folder .agents/skills (add --project . to the command).
Goose
Install RayStack globally for Goose: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent goose`, then tell me what it printed.Global folder ~/.config/goose/skills, project folder .goose/skills (add --project . to the command).
OpenCode
Install RayStack globally for OpenCode: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent opencode`, then tell me what it printed.Global folder ~/.config/opencode/skills, project folder .opencode/skills (add --project . to the command).
Qwen Code
Install RayStack globally for Qwen Code: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent qwen`, then tell me what it printed.Global folder ~/.qwen/skills, project folder .qwen/skills (add --project . to the command).
Trae
Install RayStack globally for Trae: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent trae`, then tell me what it printed.Global folder ~/.trae/skills, project folder .trae/skills (add --project . to the command).
Junie
Install RayStack globally for Junie: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent junie`, then tell me what it printed.Global folder ~/.junie/skills, project folder .junie/skills (add --project . to the command).
Augment
Install RayStack globally for Augment: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent augment`, then tell me what it printed.Global folder ~/.augment/skills, project folder .augment/skills (add --project . to the command).
Warp
Install RayStack globally for Warp: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent warp`, then tell me what it printed.Global folder ~/.agents/skills, project folder .agents/skills (add --project . to the command).
Zed
Install RayStack globally for Zed: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent zed`, then tell me what it printed.Global folder ~/.agents/skills, project folder .agents/skills (add --project . to the command).
OpenHands
Install RayStack globally for OpenHands: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent openhands`, then tell me what it printed.Global folder ~/.openhands/skills, project folder .openhands/skills (add --project . to the command).
Continue
Install RayStack globally for Continue: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent continue`, then tell me what it printed.Global folder ~/.continue/skills, project folder .continue/skills (add --project . to the command).
OpenClaw (Clawdbot)
Install RayStack globally for OpenClaw: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash -s -- --agent openclaw`, then tell me what it printed.Global folder ~/.openclaw/skills, project folder skills (add --project . to the command). Still on the old name? Use --agent clawdbot or --agent moltbot.
Any other agent
Install RayStack for my agent: run `curl -fsSL https://raw.githubusercontent.com/HarunRRayhan/RayStack/main/get.sh | bash` once, then `~/.raystack/install.sh --agent custom --dir /path/to/its/skills` with the folder my agent reads skills from, and tell me what it printed.Replace the folder with the one your agent reads skills from.
Update
Get the latest release
~/.raystack/install.sh --updateOr type /raystack update in your agent. It pulls the latest release into ~/.raystack and refreshes every global and project install made from it. Start a new agent session after. Plugin installs update through the agent.
Skills
Thirty-four skills, three groups
/raystack is the front door, with two entry points behind it: /dev for building and /audit for reviews. For build work it hands off to dev, which picks the smallest track that fits, from a quick bug fix to a full product. /raystack project new starts a product with a short questionnaire, one question at a time, then research, PRD, architecture, specs and a plan. project update, project review and project migrate work on an existing codebase. For reviews, /audit looks at the repo, recommends reviews, and asks once which ones to run. Or say what you want, like /audit cqrs or /audit reliability. /audit all runs every review that fits and writes one ranked summary. You can also call any skill directly. Principles load on their own when a task matches.
Development
- dev
- The entry point. Sees where the project is, picks Quick, Standard, or Full, and runs the next step.
- dev-hub
- Sets up AGENTS.md, a decisions log, and the docs folders. Can grow into a planning hub for several repos.
- dev-research
- Dated research notes with a source beside every fact.
- dev-prd
- Asks until it can write the PRD, with each behaviour written as a numbered, testable line.
- dev-spec
- Architecture and per-area specs, checked against the shipped engineering principles.
- dev-plan
- One plan per slice. Every behaviour maps to a task before any code is written.
- dev-build
- A fresh agent builds each task and another reviews it. A ledger lets a stopped build resume, then a final review and ship.
- dev-gaps
- For an existing project: finds the missing research, PRD, architecture, specs and plan, then writes them from the code and your answers.
- dev-review
- Mid-build and read-only: checks the architecture, specs and plan against the code for drift, unserved behaviours and over-design.
- dev-migrate
- Moves part of a project to another stack, say a service to Rust, step by step with parity tests.
- dev-refactor
- Refactors a codebase inside the architecture it already follows. Tests first, then DRY, SOLID and change-together fixes in small green steps, reviewed until clean.
- rs
- A shorter name for /raystack. /rs refactor, /rs scan all and /rs project new all work.
Reviews
- audit
- The entry point for reviews, as dev is for building. /audit picks the reviews that fit this repo and runs them; /audit security runs one; /audit all runs a scan of every review that fits and writes one ranked summary.
- aws-billing-review
- AWS spend, with savings ranked in $/mo.
- aws-security-review
- IAM, public exposure, logging, and secrets on AWS.
- aws-bottleneck-review
- Throttling, limits, quotas, and single points on the request path.
- infra-review
- Deploys, rollback, backups, monitoring, and exposure on any platform.
- scaling-review
- What breaks first at 10x and 100x load.
- database-review
- Queries, indexes, migrations, backups, connections, and bloat.
- app-security-review
- Your app's code: IDOR, injection, secrets, CSRF, security logging, and vulnerable dependencies. Every finding needs a working exploit.
- performance-review
- Per-request cost today: N+1 queries, unbounded queries, slow work in the request path, caching, and bundle size.
- cve-review
- Known CVEs in your dependencies, checked against your code for reach, plus software that will collect them: end-of-life runtimes and frameworks, old base images, unsupported cloud versions, vendored libraries, and no update process.
- pipeline-security-review
- CI/CD and supply chain: GitHub Actions pwn requests and injection, unpinned actions, Dockerfiles, IaC, and lockfiles.
- architecture-review
- Finds the pattern your code uses (MVC, layered, CQRS, hexagonal, modular monolith, microservices) and checks it is followed: fat controllers, mixed CQRS sides, layer leaks, cycles, god classes.
- frontend-review
- React, Next, Vue, Svelte, Angular, or Inertia: components, data fetching, re-renders, accessibility, forms, bundle, and SEO basics.
- reliability-review
- Reliability and availability: timeouts, retries, idempotency, queues, health checks, single points of failure, backups, rollback, and SLOs.
- codebase-review
- Code health: test gaps, hot spots, dead code, duplicated rules, swallowed errors, and outdated dependencies.
- aws-readonly-setup
- No read-only AWS access yet? Signs you in and creates a role that can read config but not data or anything it could change.
Principles and workflow
- principle-ship
- Done means merged, deployed, and checked live. Asks before merging unless you turn that off.
- principle-smallest-change
- The smallest change that fully solves the task.
- principle-ask-with-question-tool
- Questions go through your agent's question prompt, not plain chat.
- principle-secrets-layout
- One flat secrets folder, examples committed, real values never.
- local-verify
- Checks a change in a real local browser against a throwaway database before it ships.
Safety
Read-only by design
No review changes anything live. Fixes come back as diffs or as commands for you to run.
In Claude Code, a guard hook checks every shell command during a review. Cloud and database CLIs get read verbs only, and deploy tools are blocked. The guard is a seatbelt, not a sandbox. Cursor, Codex, and Grok follow the same rules, but nothing enforces them there.
So run reviews with read-only credentials: AWS ReadOnlyAccess or ViewOnlyAccess, and a read-only database role. That's the real boundary.
No read-only AWS access yet? aws-readonly-setup does it for you: one browser sign-in, then a role that reads config and billing but not your data, with no access keys created.
The guard stays on for the rest of the session, so start a new session after a review before you build or run tests. What it checks, read-only credentials for each database and platform, and privacy are in the safety doc.
Output
What you get back
Each review writes reviews/YYYY-MM-DD-<skill>.md in your repo. It has a short summary, the inputs it used and the ones it lacked, and findings ranked Critical to Low. Each finding has evidence, a fix, and an estimated $/mo where one can be worked out. Want a PDF for a client or your boss? The review offers one at the end.
No live access? A review still works from your IaC and code, marks those findings unconfirmed, and lists what it needs from you.
Uninstall
Remove RayStack
~/.raystack/install.sh --uninstall --agent all
rm -rf ~/.raystack ~/.raystack-installsRemoves exactly the thirty-four RayStack skills from every agent it finds, then the checkout. For a project install, run the first line with --project . in the repo instead.
Want me to look at it myself?
RayStack covers the checks I run first. For a hands-on audit of your stack, book a consultation.

