close
BERJAYA

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 | bash

Run 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.

BERJAYAClaude 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.

BERJAYAClaude (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.

BERJAYACodex
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.

BERJAYAChatGPT (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.

BERJAYACursor
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).

BERJAYAGrok 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.

BERJAYAGrok (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.

BERJAYAAntigravity
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).

BERJAYAGemini 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).

BERJAYAGitHub 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).

BERJAYAWindsurf
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).

BERJAYACline
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).

BERJAYAKiro
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).

BERJAYARoo 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).

BERJAYAKilo 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).

BERJAYAAmp
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).

BERJAYAGoose
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).

BERJAYAOpenCode
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).

BERJAYAQwen 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).

BERJAYATrae
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).

BERJAYAJunie
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).

BERJAYAAugment
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).

BERJAYAWarp
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).

BERJAYAZed
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).

BERJAYAOpenHands
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).

BERJAYAContinue
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).

BERJAYAOpenClaw (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 --update

Or 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-installs

Removes 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.

Book a consultation