Development

Prerequisites

  • Rust, 1.85 or later (Cargo is included)
  • Git
  • Bun, only for the website

Clone and Build

git clone https://github.com/gfirik/pas-agent.git
cd pas-agent
cargo build

Run Tests

cargo test

Unit tests live next to the code in pas-agent-core. End-to-end tests that run the real binary live in crates/pas-agent-cli/tests/.

Lint and Format

cargo clippy --all-targets -- -D warnings
cargo fmt --check

Website

cd website
bun install
bun run dev     # local dev server
bun run build   # static output in dist/

Project Structure

pas-agent/
├── Cargo.toml                    # Workspace root
├── crates/
│   ├── pas-agent-core/          # Core library
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── lib.rs
│   │       ├── session.rs        # Session model
│   │       ├── storage.rs        # File persistence
│   │       ├── context.rs        # Context generation
│   │       └── git.rs            # Git state capture
│   └── pas-agent-cli/           # CLI binary
│       ├── Cargo.toml
│       ├── src/
│       │   └── main.rs
│       └── tests/
│           └── cli.rs            # End-to-end CLI tests
├── website/                      # Landing page + docs (Astro)
│   └── DESIGN.md                 # Website design system
├── .github/workflows/            # CI and release builds
├── AGENTS.md                     # Contributor rules (CLAUDE.md imports it)
└── CONTRIBUTING.md

Contributing

PAS-Agent is open source and welcomes contributions. Before submitting a pull request:

  1. Run cargo test: all tests must pass
  2. Run cargo clippy --all-targets -- -D warnings: no warnings
  3. Run cargo fmt: code must be formatted
  4. Keep changes focused: one feature or fix per PR

License

PAS-Agent is licensed under the MIT License.