Key Concept
Cards work well for self-contained explanations, definitions, or callouts that deserve visual separation from the main text flow.
This page demonstrates every Starlight MDX component and formatting convention used throughout the Developer Toolkit documentation. Use it as a reference when writing or editing articles.
Asides highlight important information. Each variant signals a different intent.
The core pattern across Developer Toolkit. Every shared workflow uses three tabs.
Cursor is an IDE-first tool. Workflows happen inside the editor with visual feedback.
Cmd/Ctrl+I Open Agent chatCmd/Ctrl+K Inline editTab Accept autocomplete@file.ts Reference a fileKey features: Tab autocomplete, Background Agent, BugBot, checkpoints, visual diffs.
Claude Code is a CLI-first tool. Workflows happen in the terminal with text-based interaction.
claude # Start interactive sessionclaude -p "fix the bug" # One-off query/compact # Summarize conversation@file.ts # Reference a fileKey features: Hooks, custom slash commands, headless mode, piping, session management.
Codex is a multi-surface tool. Workflows span the App, CLI, IDE extension, and Cloud agents.
codex # Start interactive sessioncodex "implement the feature" # Start with promptcodex --full-auto # Autonomous modeKey features: Git worktrees, GitHub/Slack/Linear automations, cloud agents, approval modes.
Tabs can be nested for sub-comparisons within a tool section:
| Task | Recommended Model |
|---|---|
| Complex architecture | Claude Opus 4.6 |
| Everyday coding | Claude Sonnet 4.5 |
| Speed-critical iteration | Cursor Composer 1 |
| Bug fixing in Cursor | GPT-5.2 |
| All Codex workflows | GPT-5.3-Codex |
| Budget | Primary Model |
|---|---|
| Premium | Claude Opus 4.6 |
| Standard | Claude Sonnet 4.5 |
| Cost-sensitive | GPT-5.2 |
interface AuthResult { success: boolean; user?: User; error?: string;}
export async function authenticateUser( token: string): Promise<AuthResult> { try { const payload = await verifyJWT(token); const user = await db.users.findById(payload.sub); return { success: true, user }; } catch (error) { return { success: false, error: "Invalid token" }; }}// Configuration updateconst config = { port: process.env.PORT || 3000, database: process.env.DATABASE_URL, cacheEnabled: true, // Added: enable caching // debugMode: true, // Removed: disable debug in production};# Install dependenciesnpm install @anthropic-ai/claude-codeclaude --version
# Initialize project configurationclaude/initconst users = await db .select() .from(usersTable) .where(eq(usersTable.role, "admin"));users = await db.execute( select(users_table).where( users_table.c.role == "admin" ))var users []Usererr := db.Where("role = ?", "admin").Find(&users).ErrorKey Concept
Cards work well for self-contained explanations, definitions, or callouts that deserve visual separation from the main text flow.
Cursor
IDE-first development with visual editing, agent mode, tab autocomplete, and background agents.
Claude Code
CLI-first development with terminal workflows, hooks, custom commands, and headless CI integration.
Codex
Multi-surface development spanning App, CLI, IDE, and Cloud with automations and worktrees.
Steps render a numbered procedural walkthrough. The component expects a single ordered list.
Install the tool
Choose your preferred AI coding tool and install it following the quick-start guide.
Configure project context
Create the configuration file (.cursor/rules/, CLAUDE.md, or AGENTS.md) with your project’s tech stack, coding standards, and common commands.
Set up MCP servers
Install MCP servers for your external tools (database, browser, Git hosting) to give the AI direct access.
Start with a real task
Pick a low-risk task from your backlog — a bug fix, a test, or a small feature. Work through it with the AI and iterate on your prompts.
Review and refine
After your first session, update your configuration file based on what worked and what the AI got wrong. The configuration improves with every session.
| Feature | Cursor | Claude Code | Codex |
|---|---|---|---|
| Tab autocomplete | Yes | No | No |
| Background agents | Yes | Yes (headless) | Yes (Cloud) |
| MCP servers | Yes | Yes | Yes |
| Git integration | Built-in | Via tools | Via worktrees |
| Custom commands | Extensions | .claude/commands/ | Slash commands |
| Model | Provider | Context | Input $/1M | Output $/1M | Best For |
|---|---|---|---|---|---|
| Claude Opus 4.6 | Anthropic | 200K | $5 | $25 | Complex architecture |
| Claude Sonnet 4.5 | Anthropic | 1M | $3 | $15 | Everyday coding |
| GPT-5.3-Codex | OpenAI | 200K+ | Subscription | Subscription | Codex workflows |
| GPT-5.2 | OpenAI | 200K+ | $1.25 | $10 | Bug fixing |
| Gemini 3 Pro | 1M | $2 | $12 | Multimodal analysis |
Badges add inline status indicators:
You can create custom slash commands in Claude Code that leverage MCP servers for multi-step workflows:
---allowed-tools: [Read, Edit, Bash, mcp__github__create_pull_request]description: Create a PR from the current changes---
1. Run: !git diff --stat2. Summarize the changes3. Create a PR with a descriptive title and body4. Report the PR URLThis pattern works because MCP tools are available as allowed-tools in custom command definitions.
When you omit both alwaysApply and globs, the rule becomes “agent-selected.” Cursor reads the description field and decides whether the rule is relevant to the current task:
---description: "Database migration patterns using Drizzle ORM. Use when creating or modifying database schemas."---
## Migration Rules- Always create a new migration file, never modify existing ones- Run `npm run db:migrate` after creating migrations- Test migrations with `npm run db:migrate:dry`This is useful for specialized rules that only apply to certain types of tasks.
Reference commands like /compact, files like CLAUDE.md, and keyboard shortcuts like Cmd+I using inline code formatting.
When showing a prompt the user should type or paste:
Review this authentication middleware for security vulnerabilities. Check for: JWT validation issues, missing rate limiting, CSRF protection gaps, and session fixation risks. Suggest fixes with code.
Unordered lists for feature sets and options:
Ordered lists for sequential procedures:
Every article in Developer Toolkit (except index pages) follows this structure:
Standard Article Anatomy
<Aside type="tip"> blocksThis structure ensures every article delivers immediate, actionable value rather than abstract theory.