# deps
# Node.js dependencies
node_modules
.pnpm-store
.pnpm-debug.log
.pnpm/

# Keep pnpm-lock.yaml
!pnpm-lock.yaml

# build
dist/
bazel-*
user.bazelrc
build/
out/
storybook-static/

# ignore README for publishing
codex-cli/README.md

# ignore Nix derivation results
result

# editor
.vscode/
.idea/
.history/
.zed/
*.swp
*.swo
*~
*.code-workspace

# cli tools
.claude/
.codex/

# Binary symlinks generated by dev-fast builds
codex-cli/bin/*-darwin
codex-cli/bin/*-linux-*
codex-cli/bin/*-windows-*
code-rs/code-cli/bin/
codex-rs/codex-cli/bin/
code-rs/bin/

# Rust build artifacts
/target/
/codex-rs/target/
**/*.rs.bk

# Local Cargo caches (never commit)
# Keep anchored rules for root, and add unanchored patterns so nested workspaces
# like codex-rs/.cargo-home are also ignored.
/.cargo-home/
/.cargo-cache/
/.cargo2/
.cargo-home/
.cargo2/
/codex-rs/.cargo-home/
/codex-rs/.cargo2/

# Release and CI scratch
/.code-bin/
/artifacts/
/release-assets/
/npm-binaries/
/.github/auto/

# Homebrew formula staging (generated)
Formula/Code.rb
homebrew-tap/Formula/Code.rb

# Local GitHub Actions runners and caches
.act/
actions-runner/
.github/workflows/*-local.yml
.github/workflows/.cache/

# caches
.cache/
.turbo/
.parcel-cache/
.eslintcache
.nyc_output/
.jest/
*.tsbuildinfo
playwright-report/

# temp files
.tmp/
tmp/
temp/
.merge-backup
.target-test/
.target-test-pre/

# logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# env
.env*
!.env.example
.venv/

# package
*.tgz
# `npm pack` output, regenerated by release.yml; never a source of truth
codex-cli/.pack/

# ci
.vercel/
.netlify/
/.tmp/sdk-ci/
/upstream-rusty-v8/

# patches
apply_patch/

# generated reports
reports/

# coverage
coverage/

# personal files
personal/

# os
.DS_Store
Thumbs.db
Icon?
.Spotlight-V100/

# Unwanted package managers
.yarn/
yarn.lock

# release
package.json-e
session.ts-e
CHANGELOG.ignore.md

# nix related
.direnv
.envrc

# git worktrees
branches/
/.wt-*/
.worktrees/

# coder directories
.coder/
.code/

# trigger: test non-notes change (no [skip ci])

# release notes (generated by CI)
docs/release-notes/prompt.expanded.txt
docs/release-notes/context.md
# The release job scratch-generates into a second, root-level release-notes/.
# Only these two paths were ignored, so its context.md and prompt.expanded.txt
# were not — and every release committed ~650 KB of expanded prompt to the repo.
# Leading slash on purpose: a bare `release-notes/` would also match
# docs/release-notes/, which is tracked.
/release-notes/
prompts/projects/

# generated by `make prepare`
.build/
target/
