Environment variables

Set project-wide environment variables in the Charlie Dashboard to configure authentication and build optimizations.

NPM_TOKEN

Authenticates Charlie when installing private NPM packages so your builds don’t fail.

TURBO_TOKEN

Enables Turbo’s remote caching to speed up CI runs and avoid redundant work.

Charlie’s configuration

You can help Charlie understand your project better by creating a configuration file at .charlie/config.yml:
Charlie reads .charlie/config.yml once at startup from the repository’s default branch (usually master or main). Changes made in a feature branch will be ignored until they land on the default branch and Charlie is restarted.
## Files Charlie should skip during reviews
## Note: only include files not already in .gitignore
ignorePatterns:
  - '**/*.lock'
  - '**/node_modules'
  - '**/.env'

## Commands Charlie can use to verify changes
checkCommands:
  fix: bun run fix
  lint: bun run lint
  types: bun run typecheck
  test: bun run test

Understanding the Configuration

Charlie uses your configuration differently depending on what he’s doing: When reviewing your code:
  • Skip files matching the ignorePatterns (like lock files and node_modules)
When editing files:
  • Use the checkCommands to validate changes after making edits
  • Ensure his changes don’t break your build or tests
Need help with configuration? Just mention @CharlieHelps in a PR, and he’ll be happy to assist!

Custom Repo instructions

Instructions are small markdown files in .charlie/instructions/ that let you tweak Charlie’s behavior—think Cursor rules—but they can also just provide helpful project context. Keep them lightweight; Charlie reads all files in that folder when he works on your repo. Example .charlie/instructions/testing.md:
# Testing Guidelines

Always write unit tests for new functions. Place test files in `__tests__/` directories next to the code being tested.

Use descriptive test names that explain what is being tested.
  • Put each topic in its own file for sanity
  • You can link to your own internal docs or style guides for context

Enabling Beta Features

Charlie occasionally ships experimental capabilities that you can opt-into before they become the default. These features live under a beta section in .charlie/config.yml.
beta:
  ## Allow Charlie to leave an Approved review on your pull request. (The √ under Reviewers)
  ## By default, Charlie will only leave "comment" status for pull request reviews.
  canApprovePullRequests: true

  ## Force Charlie to run all commands defined under `checkCommands` after editing files.
  ## Use this with caution because if the commands are failing it will prevent Charlie from finishing the task and may derail his efforts.
  forceAllCheckCommands: true
Because these features are still in beta, behavior may change between versions. Feel free to give feedback or disable the flag at any time by removing it (or setting it to false) from your configuration.