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:

## 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!

Example Instructions

Charlie can be guided by custom instructions in your repository. You can find example instructions and templates in our public instructions repository.

To use these examples:

  1. Browse the repository for instructions that match your needs
  2. Copy relevant examples to your .charlie/instructions/ directory
  3. Customize them for your specific project

This community-driven repository grows over time as teams contribute their best practices and templates. Feel free to:

  • Use any examples as starting points for your own instructions
  • Suggest new instruction templates via pull requests
  • Share your team’s successful instruction patterns

Instructions should be specific to your project’s needs. The examples serve as inspiration rather than strict templates to follow.

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.

Deploying Charlie’s Commits with Vercel

Charlie’s commits are authored by @CharlieHelps. In order for those commits to trigger deployments on Vercel, the @CharlieHelps account must have permission to deploy your application.

If you would like Charlie’s commits to be deployed via GitHub Actions, invite Charlie (charlie@charlielabs.ai) to your Vercel team.
Once the invite is accepted, any merges performed by Charlie will deploy just like commits from your own team members.