cli/CLAUDE.md
Jake Runzer 273072a69f
Add CLAUDE.md with development guidance (#661)
* Add CLAUDE.md with development guidance

Provides essential commands and architecture overview for Claude Code to work effectively in this repository.

* Fix clippy warnings

Apply automatic fixes from cargo lint-fix.

* Update CLAUDE.md and apply code formatting

Add guidance to run cargo fmt after making changes and apply formatting.
2025-09-09 20:20:10 -04:00

1.1 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Development Commands

  • cargo run -- <args> - Run CLI during development
  • cargo test - Run tests
  • cargo lint-fix - Fix linting issues automatically (run after making changes)
  • cargo fmt - Format code (run after making changes)
  • cargo clippy - Check for linting issues
  • nix-shell - Enter dev environment with dependencies

Architecture

  • Commands: src/commands/ - CLI commands using clap derives, each with exec() function
  • Controllers: src/controllers/ - Business logic for Railway entities (project, service, deployment)
  • GraphQL: src/gql/ - Generated type-safe queries/mutations for Railway API
  • Config: src/config.rs - Authentication and project settings
  • Workspace: src/workspace.rs - Multi-project context handling

Command System

Commands use a macro system in main.rs. The commands! macro generates routing for modules in src/commands/.

Authentication

  • Project tokens via RAILWAY_TOKEN environment variable
  • User tokens via OAuth flow stored in config directory