Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@acmeacmeio/setup-sh) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
setup-sh
Bootstrap a multi-agent workspace with team standards, hooks, and skills for Claude Code, OpenAI Codex, and Cursor IDE.
Supported Agents
| Agent | Config | Instructions | Skills/Rules |
|---|---|---|---|
| Claude Code (Anthropic) | .claude/settings.json |
CLAUDE.md |
.claude/skills/ |
| Codex (OpenAI) | .codex/config.toml |
AGENTS.md |
.codex/skills/ |
| Cursor (Cursor IDE) | .cursor/hooks.json |
CLAUDE.md* |
.cursor/rules/ |
* Cursor natively reads CLAUDE.md and AGENTS.md
Usage
# Interactive mode (prompts for agent selection)
npx @acmeacmeio/setup-sh
# Specify agent via flag
npx @acmeacmeio/setup-sh . --agent=claude # Claude Code only
npx @acmeacmeio/setup-sh . --agent=codex # Codex only
npx @acmeacmeio/setup-sh . --agent=cursor # Cursor IDE only
npx @acmeacmeio/setup-sh . --agent=all # All agents
# Create new project directory
npx @acmeacmeio/setup-sh my-project --agent=all
# Non-interactive mode
npx @acmeacmeio/setup-sh my-project --agent=claude --yesWhat It Does
Installs Required Tools (if missing)
- GitHub CLI (
gh) - Node.js
- pnpm
- Python 3.11+ and uv
- GitHub CLI (
Creates Workspace Structure
Claude Code:
.claude/ ├── settings.json # Permissions, hooks ├── commands/ # Slash commands (/tdd, /review, etc.) ├── skills/ # Domain knowledge └── router/ # Intent classification system CLAUDE.md # Team standards .mcp.json # MCP server configurationCodex:
.codex/ ├── config.toml # Model, sandbox, MCP servers └── skills/ # Domain knowledge (same format as Claude) AGENTS.md # Team standardsCursor:
.cursor/ ├── rules/ # MDC rules with YAML frontmatter │ ├── tdd.mdc # Always apply - TDD methodology │ ├── typescript.mdc # Auto-attach on *.ts, *.tsx │ ├── api-design.mdc # Agent requested - REST patterns │ ├── security.mdc # Agent requested - Security checklist │ └── git-workflow.mdc # Agent requested - Git conventions ├── commands/ # Plain markdown commands └── hooks.json # Post-edit formatting hooks .cursorignore # Files to exclude from Cursor context CLAUDE.md # Team standards (Cursor reads this natively)Installs Skills
- Claude Code: External skills via
npx add-skill - Codex: Bundled skills in
.codex/skills/ - Cursor: Bundled rules in
.cursor/rules/
- Claude Code: External skills via
Feature Comparison
| Feature | Claude Code | Codex | Cursor |
|---|---|---|---|
| Instructions file | CLAUDE.md |
AGENTS.md |
CLAUDE.md* |
| Config format | JSON | TOML | JSON |
| Rules/Skills format | SKILL.md |
SKILL.md |
.mdc (MDC) |
| Hooks | Pre/Post tool use | Notify only | afterFileEdit |
| MCP servers | .mcp.json |
config.toml |
N/A |
| Permissions | Allowlist/denylist | Sandbox modes | N/A |
| Rule application | /skill-name |
$skill-name |
globs/alwaysApply |
* Cursor also reads AGENTS.md
Cursor MDC Rules
Cursor uses MDC (Markdown with YAML frontmatter) format for rules:
---
description: TypeScript strict mode patterns
globs:
- "**/*.ts"
- "**/*.tsx"
alwaysApply: false
---
# TypeScript Patterns
Content here...Rule Types
| Type | Configuration | Behavior |
|---|---|---|
| Always Apply | alwaysApply: true, globs: [] |
Active for all files |
| Auto Attached | alwaysApply: false, globs: ["*.ts"] |
Active when matching files open |
| Agent Requested | alwaysApply: false, globs: [] |
Agent decides when to use |
What You Get
Commands (Claude Code)
/fix-issue <number>- Fix a GitHub issue with TDD workflow/review- Run code review checklist/clean-copy- Restructure commits into clean history/auto- Auto-detect best workflow
Rules (Cursor)
tdd.mdc- TDD methodology (always apply)typescript.mdc- TypeScript patterns (auto-attach on .ts/.tsx)api-design.mdc- REST + Zod patterns (agent requested)security.mdc- Security checklist (agent requested)git-workflow.mdc- Git conventions (agent requested)
Skills (Both Claude Code & Codex)
$api-design- REST + Zod patterns$security-review- Security audit checklist
Hooks
Claude Code:
- Auto-format: Prettier + ESLint on every edit
- Security: Blocks
.envfile modifications - Intent routing: Suggests commands based on prompts
Cursor:
- Auto-format: Prettier + ESLint after file edit
Setup for Users
Configure npm to use GitHub Packages for the @acmeacmeio scope:
# Add to ~/.npmrc
@acmeacmeio:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKENThen run:
npx @acmeacmeio/setup-sh my-projectLocal Development
# Test locally without publishing
cd packages/setup-sh
node src/cli.mjs /path/to/test-project
# Or link globally
npm link
setup-sh /path/to/test-project
# Test specific agent
node src/cli.mjs /tmp/test --agent=cursor
node src/cli.mjs /tmp/test --agent=codex
node src/cli.mjs /tmp/test --agent=allCustomization
After running the command, customize:
Claude Code
CLAUDE.md- Edit team standards.claude/settings.json- Adjust permissions and hooks.claude/commands/- Add custom slash commands.claude/skills/- Add domain-specific knowledge
Codex
AGENTS.md- Edit team standards.codex/config.toml- Adjust model, sandbox, MCP servers.codex/skills/- Add domain-specific knowledge
Cursor
CLAUDE.md- Edit team standards (Cursor reads this natively).cursor/rules/- Add custom MDC rules.cursor/commands/- Add custom commands.cursor/hooks.json- Adjust post-edit hooks.cursorignore- Exclude files from Cursor context
License
MIT