Skip to main content

Daemon-powered PR reviews

Daemon-powered PR reviews are now generally available. They replace Charlie’s previous automatic reviewer with a PR-review daemon that each team defines and configures in its repository. Teams control when the daemon runs, which perspectives matter, the evidence bar for feedback, how rereviews handle earlier findings, and how the final review is presented. Its configuration uses ordinary Markdown under .agents/daemons/pr-review/: DAEMON.md sets review-wide policy, while focused lane files define the questions Charlie should investigate.When the daemon wakes for a pull request, Charlie gathers the current diff, checks, discussion, prior feedback, and relevant repository context. He selects the lanes that apply, runs them independently in parallel, verifies their evidence, reconciles overlapping or previously reported findings, and publishes one coherent GitHub review. Lane results do not appear as separate bot reports, so authors do not have to combine repeated or conflicting findings themselves.Teams can start from the reference PR-review daemon and install or migrate it per repository through the Dashboard, by asking Charlie, or with the CLI. Installation opens a normal pull request. Once the daemon configuration reaches the default branch, the team can evolve review cadence, lanes, evidence rules, and presentation through the same review process used for code.Learn more: Your repo sets the rules. Charlie runs the review.
  • Improvement Charlie-specific repository instructions: Teams can add instructions specifically for Charlie in CHARLIE.md or under .agents/, and Charlie prioritizes them when selecting repository context.
  • Bug Add another GitHub organization: Existing customers can use Add new org to start another GitHub App installation instead of being returned to their current organization.

Charlie Credits and usage limits

Charlie Credits are now the shared workspace usage unit for direct agent work and daemons. Every plan includes daily and weekly Credits that reset on separate UTC schedules. Teams can review current usage, included limits, and billing in the Dashboard.When a workspace reaches either included limit, Charlie stops accepting new tasks until the limit resets unless prepaid overage Credits have been purchased.Learn more: Charlie Credits limits
  • Bug GitHub App installation cancellation: Teams that cancel a GitHub App installation now see clear options to retry or return to onboarding without starting installation completion.

GPT-5.6-powered Charlie

Charlie is now powered by OpenAI’s GPT-5.6. We use the model where ambiguous engineering work requires judgment: deciding what to investigate, separating confirmed evidence from open questions, and choosing whether to make a narrow fix or leave a precise next step. This is especially useful for stuck pull requests, production alerts, and bug reports where the right action depends on more than the first signal.Charlie uses the GPT-5.6 Sol, Terra, and Luna models together. Sol plans, delegates, and synthesizes. Terra and Luna handle focused exploration, implementation, review, and follow-up work. Workers can also delegate child tasks, creating durable task trees that preserve parentage, avoid duplicate child work on retry, and let several independent investigations move at once before their findings return to the root task.GPT-5.6 also increases Charlie’s use of parallel tool calls when the work is independent. In the updated harness, turns with two, three, and four tool calls rose from 0.5%, 0.3%, and 0.06% to 3.0%, 4.2%, and 2.6%, respectively, so he can fan out investigation before bringing the evidence back together.Learn more: A smarter Charlie, powered by GPT-5.6
  • Bug Completed tool results are preserved: Charlie saves completed tool results independently and can persist larger task transcripts without failing the run.
  • Bug Automatic pull request reviews restored: Pull requests opened or marked ready for review once again reach Charlie’s automatic review path when no daemon takes ownership.
  • Bug Linear connections stay connected: A completed Linear connection remains successful even if the subsequent team sync fails.

New customer dashboard

The new customer dashboard brings Charlie setup and recent activity into one place. Teams can install the GitHub App, manage repositories, and connect Slack, Linear, and Sentry. Repository pages keep integration defaults, secrets, and daemon setup together; adding a daemon opens a normal installation pull request.The Activity page provides a shared view of recent agent and daemon work. Each row shows where the work started, the relevant repository and daemon, the status and duration of the work, and the resulting outcome, with links back to the originating work when available. Teams can change the date range, filter by daemon, and search recent activity without reconstructing Charlie’s work across several systems.Learn more: Open the Charlie Dashboard
  • Bug Repository capitalization differences: Charlie recognizes GitHub repository names regardless of capitalization, so case-only differences do not hide daemon configuration.
  • Bug Existing daemon setup recovery: Charlie finds an existing daemon installation pull request after a reload instead of offering to create a duplicate.
  • Improvement Clearer daemon installation pull requests: Installation pull requests now explain the daemon’s role, activation conditions, required integrations, and when the daemon becomes active.
  • Bug Empty-repository setup guidance: Charlie explains that a repository needs an initial commit before he can open a daemon installation pull request.
  • Bug Custom daemon setup values: Teams can enter their own Slack channels and other open-ended values when adapting a daemon example.

Daemons respond to Slack and Linear events

Daemons can now respond to supported activity in Slack and Linear, in addition to GitHub events and schedules. Linear issue and comment activity, along with Slack mentions, thread replies, channel messages, and direct messages, can wake a recurring role when the event matches the daemon’s instructions. Work can begin where the team is already discussing it without someone copying the same context into GitHub or prompting Charlie again.Examples of roles built on these event sources include:Teams connect the relevant integration, map the Slack workspace or Linear team to the intended repository, and describe the role’s watch conditions in DAEMON.md. Charlie uses the incoming event, repository context, and daemon instructions to decide whether the role applies. The configuration stays visible to the whole team in the repository even when the event begins elsewhere.Learn more: Daemons
  • Improvement Safer starter daemon setup: Starter daemons requiring repository-specific changes now open as draft pull requests with an adaptation checklist.
  • Bug Daemon setup recovery: Teams can continue when the first installed repository appears, and a temporary catalog error no longer clears examples that already loaded.
  • Bug Schedule-only daemons stay on schedule: Daemons without watch conditions no longer wake in response to Slack, Linear, or GitHub events.
  • Bug Fewer duplicate Slack replies: Charlie coalesces duplicate Slack message and mention deliveries before they can start parallel tasks.

Open source daemon examples

We published an open source repository of daemon examples that teams can use to get started. Each one is a concrete starting point for a recurring engineering responsibility instead of an empty DAEMON.md file.The initial examples include:Every example includes its daemon definition and any supporting scripts or reference files. Teams can inspect how the role, activation conditions, routines, and team rules fit together, then copy the nearest pattern and adapt its repository-specific commands, schedule, and checks. The Dashboard uses the same catalog during daemon setup, so these examples are available there as well as on GitHub.The repository also includes the daemon CLI: daemon list and daemon show browse the catalog, daemon add scaffolds an example into .agents/daemons/<id>/, and daemon validate checks the resulting files before they are merged.Learn more: Charlie daemon examples
  • Bug Interrupted delegated work resumes: Charlie resumes interrupted delegation without waiting for a false timeout or creating the same child task twice.
  • Bug Duplicate daemon matches: Evaluating the same daemon twice no longer cancels the entire activation decision.

Daemons for recurring engineering work

Daemons let teams assign Charlie a specific recurring engineering role, then have him return to similar work when a relevant event occurs or a schedule runs. Daemons can respond to supported GitHub activity and schedules.Initial use cases include:
  • Repair failing checks or clear merge conflicts so a pull request can move forward.
  • Keep pull-request titles, descriptions, and issue links accurate as the code changes.
  • Triage review feedback by identifying duplicates and resolving threads after the underlying issue is fixed.
  • Check for documentation drift on a schedule and open a focused update when the code and docs disagree.
Teams can add a daemon through the Dashboard, by asking Charlie, or by creating the files manually. Whichever method they use, the daemon becomes available when its files are under .agents/daemons/<daemon-id>/ on the repository’s default branch. DAEMON.md describes the role’s purpose, what it watches, the routines Charlie should perform, and actions he must avoid; supporting scripts and reference files can live beside it. Because the configuration lives with the code, the whole team can inspect, discuss, and change Charlie’s behavior through normal code review.Daemon roles are designed for recurring work that requires judgment, repository context, and follow-through. Charlie can decide whether an event needs action, carry out the role when it does, and leave a reviewable result in GitHub. This makes recurring ownership explicit without depending on one person to notice the same problem and prompt Charlie each time.Learn more: Introducing Daemons

Charlie V2 launch

Charlie V2 is now available for longer-running, multi-step engineering work. A team can start a task in GitHub, Linear, or Slack, then add requirements, ask for an update, redirect Charlie, or stop the task while he is working. One assignment can move through research, planning, implementation, checks, self-review, and feedback without turning each step into a separate run.V2 keeps the task and its working context in the cloud, making Charlie a better fit for jobs that can run outside someone’s active attention. He can divide larger assignments into focused child tasks, run independent work in parallel, and bring the findings back into one result. Updates and completion messages return to the originating thread or issue, so the team can follow the handoff without keeping a separate agent window open.The release also includes:
  • Multi-repository support for changes that span more than one codebase.
  • Repository-owned instructions from files such as AGENTS.md and CLAUDE.md, plus Agent Skills for reusable procedures.
  • Task history and related thread context Charlie can inspect when earlier work matters.
Learn more: How Charlie Works
  • Bug Fresher repository context: Charlie refreshes his cloud repository context after relevant GitHub changes, reducing work based on stale code or dependencies.
  • Bug Fewer unwanted GitHub activations: Routine pull-request updates and Charlie’s own progress comments no longer start new Charlie work by themselves.
  • Bug Task follow-up delivery: Follow-up instructions retry after temporary delivery failures and remain attached to the active task.

AI Daemons concept and specification

We published version 0.1 of the AI Daemons specification, an open format for persistent AI roles. A daemon owns an ongoing responsibility instead of a single task: it can wake when a relevant event occurs or on a schedule, perform a finite set of routines, and return the next time that responsibility needs attention. The aim is predictable repeated behavior that a whole team can understand.A daemon lives at .agents/daemons/<name>/DAEMON.md. YAML frontmatter sets its name, purpose, and routines; watch or schedule controls activation, and deny describes actions the role should not take. The Markdown body can hold policy, scope, limits, escalation rules, examples, and the expected output. Because the definition lives with the code, teams can review and change it together. Optional scripts and reference files can travel with the role.The specification includes complete examples and a provider guide covering discovery, activation, execution, and output delivery. This release publishes the concept and authoring format; Charlie-hosted daemon execution will have its own product launch.Learn more: AI Daemons specification
  • Improvement Resumable onboarding: Setup progress remains accurate across page reloads, sign-in redirects, and later sessions.
  • Bug Recoverable Sentry setup: Authentication, permission, and already-connected errors now give teams a path to continue without restarting onboarding.
  • Bug Linear completion replies: Charlie posts completion updates for threaded Linear requests instead of losing the response when a mention comes from a nested reply.
  • Bug GitHub onboarding route errors: The Dashboard no longer blocks GitHub sign-in or the invitation step with client-side route failures.

Browser support for Playwright tests

Charlie can now use a real browser in his cloud development environment through Playwright. Repositories with browser tests can ask him to run their end-to-end suite, investigate failures, and capture screenshots when visual evidence matters.This extends verification beyond static checks and unit tests. For front-end changes, Charlie can start the application, exercise the relevant flow, inspect what rendered, and include the result with the pull request.
  • Improvement Clearer GitHub setup: The Dashboard guides teams through inviting @CharlieHelps and shows which repositories still need access.
  • Improvement Actionable integration errors: GitHub SSO and Sentry credential errors now explain the permission or token change needed to continue.
  • Bug GitHub login recovery: The Dashboard keeps OAuth callbacks on HTTPS and restarts login when a stale session causes a state mismatch.
  • Bug Slack mention recovery: When Charlie is invited after being mentioned in a channel, he finds the recent request and replies in its thread.
  • Bug Fewer duplicate Linear tasks: Assigning a human to an issue Charlie is already handling as a delegate no longer starts the same work again.
  • Bug Correctly placed review feedback: Charlie moves findings outside the changed lines into the review summary instead of attaching them to unrelated code.

Proactive behaviors

The Proactive behaviors lets Charlie run selected maintenance playbooks once a day without a fresh prompt. A playbook can inspect the repository and open a GitHub pull request or Linear issue when it finds work worth doing.Teams opt in per repository through beta.proactive in .charlie/config.yml. Initial playbooks cover small, reviewable jobs such as documentation upkeep, dependency maintenance, dead-code cleanup, and Sentry follow-up. Start with one, review what Charlie produces, and add more when the results are useful.Watch this OpenAI DevDay demo to see proactive behaviors in action.

Multi-pass PR reviews

Charlie’s pull-request reviews now run two independent passes in parallel. Each pass examines the same diff, pull-request context, and repository instructions, reducing the chance that an issue missed when introduced is discovered only in a later review.Charlie combines the results before posting. Identical and semantically overlapping comments are removed, and the remaining findings appear in one GitHub review. Teams get broader review coverage without having to sort through duplicate feedback from separate runs.
  • Improvement More focused review comments: Charlie filters findings classified as incorrect or low-signal before posting the review.
  • Bug Fewer repeated review comments: Charlie suppresses inline feedback that repeats his earlier comments on the same pull request.

Images and screenshots

Charlie can now use images shared in Slack, Linear, and GitHub as context for engineering work. Teams can attach screenshots of UI bugs, designs, error states, or product feedback instead of translating every visual detail into text.Charlie can reference what he sees alongside repository code and documentation when he explains a problem, proposes a plan, or prepares a change.
  • Bug Complete GitHub image context: Charlie uses images from issue and pull-request bodies, earlier comments, and review threads even when a later comment triggers his work.

Try Charlie free — 10,000 credits

New teams can now try Charlie with 10,000 free credits and no credit card. The trial lets a team connect its own repository and evaluate Charlie on real reviews, fixes, and implementation work before choosing a paid plan.
  • Improvement Linear status control: Teams can configure Charlie to leave issue statuses unchanged during triage, keeping human follow-up work visible.

SOC 2 Type II

Charlie Labs has received its SOC 2 Type II attestation, providing independent evidence that our security controls operated effectively over the review period.Customers and prospects can review the report, policies, and current security information through our Trust Center.Learn more: Charlie Labs Trust Center
  • Improvement Cleaner code comments: Charlie keeps transient decision notes and change narration out of source code, leaving that context in pull-request descriptions and reviews.
  • Bug Slack request routing: Slack requests mistakenly classified as pull-request reviews now return to the general request path instead of failing for a missing pull-request number.

GPT-5 upgrade

Charlie is now powered by OpenAI’s GPT-5 for general engineering work and pull-request review. The upgrade gives him stronger reasoning across larger TypeScript changes, better use of repository context, and a clearer view of how a local edit affects the rest of the codebase.Nothing changes about how teams work with Charlie. Requests still begin in GitHub, Linear, or Slack, and code changes still return as pull requests with the repository’s available checks run.Learn more: Charlie’s GPT-5 upgrade
  • Improvement Clearer work-in-progress updates: Charlie’s progress messages make clear that he is still working and that replies will not redirect the active task.
  • Improvement Smoother Slack channel joins: When Charlie joins a channel, he posts one greeting and replies to the mention that invited him in its original thread.
  • Bug Slack requests with shared files: Charlie no longer drops the text of a Slack request simply because the message also contains a shared file.

Open source support for public GitHub repositories

Charlie can now work in eligible public GitHub repositories. Authorized maintainers can mention him, assign an issue or pull request, or request a review to investigate problems, draft fixes, and answer repository questions.The same permission model that protects private repositories applies to public work: Charlie responds to maintainers with write or admin access. Pull requests from forks and requests from external contributors or third-party bots are not part of the supported path.
  • Bug Onboarding without repositories: Organizations without GitHub repositories can continue through Linear and Slack setup instead of becoming stuck.

Charlie is generally available

Charlie is now generally available. Teams can sign up directly, connect a repository, and work with him through GitHub, Linear, and Slack. He participates in the same issues, threads, and pull requests as the rest of the team instead of requiring a separate primary work surface.Charlie can review pull requests, investigate bugs, plan and implement changes, and answer codebase questions. When a task needs more context, he can inspect Sentry and search the web. He works in a cloud development environment, follows repository instructions, runs the repository’s available checks, and returns code changes as pull requests for human review.The Dashboard handles signup, repository setup, integrations, billing, and usage. Day-to-day collaboration remains in the engineering tools where the request began.
  • Improvement Clearer progress while Charlie works: Charlie shows completed steps as he works and posts a separate final message when he finishes.
  • Bug Complete context on large pull requests: Charlie reads paginated commits, comments, reviews, and inline feedback and attaches new reviews to the current head commit.
  • Bug Replies stay in the review thread: Charlie acknowledges and responds to a single inline review comment in that thread instead of posting a separate top-level comment.
  • Bug GitHub App setup completion: Repository and membership setup now finishes before onboarding completes, reducing missing organizations and failed first tasks.

Charlie in Slack DMs and groups

Charlie can now join Slack direct messages and multi-person DMs, giving teams a one-to-one or small-group place to ask for help, discuss work, and debug a problem. Channel conversations continue to work as before.Share a pull request, Linear issue, or documentation link in the conversation and Charlie can bring that context into his response or the engineering work that follows.
  • Bug Pull-request review paths: A leading slash in one inline-comment file path no longer causes GitHub to reject Charlie’s entire review.

Web Search — real-time context

Charlie can now search the web while reasoning about a task. When a library, API, or tool has changed recently, he can look up current documentation, release notes, and examples before proposing a plan or writing code.Search runs automatically when the task needs external context and requires no workspace setup. This gives Charlie a way to check information that may be newer than his model training data instead of relying on memory alone.
  • Improvement Clearer pricing and self-service billing: Teams can compare plans and credit costs on the website and open Stripe’s Billing Portal from the Dashboard.
  • Bug Complete GitHub review feedback: Charlie receives every inline comment from a submitted GitHub review as one set of feedback.
  • Bug Slack-native plan formatting: Charlie’s plans and progress updates in Slack no longer display raw GitHub-style Markdown.

Design Partner Program

We’re opening five places in a six-week Design Partner Program for small TypeScript teams that want to use Charlie on substantial day-to-day engineering work and help shape the product. Partners will review the resulting pull requests and meet with us each week to discuss what worked and what got in the way.The program includes free usage, direct access to the Charlie Labs team, and priority for product feedback. It is intended for teams using GitHub and a TypeScript codebase, ideally with Slack, Linear, and Sentry already part of their engineering process.
  • Improvement Repository search: Teams can search their repository list in the Dashboard instead of scrolling through every connected repository.
  • Bug Preserved command summaries: Charlie retains the beginning and end of long command output, including test summaries and final error lines.

Vercel partnership

Charlie now works with Vercel deployments through Vercel’s GitHub App. When Charlie pushes a branch or opens a pull request, the repository’s existing Vercel integration can build a preview; merging the pull request can continue through the team’s normal production deployment path.Repositories that already use the Vercel GitHub App do not need a separate Charlie connection or another Vercel seat. The preview and deployment status stay attached to the GitHub pull request where the team reviews Charlie’s work.
  • Improvement Higher activity limits: Charlie can handle larger bursts of GitHub activity in a repository before requests are rate limited.
  • Bug Longer Dashboard sessions: Teams can stay signed in for seven days instead of repeating GitHub authentication each day.
  • Bug Top-level Slack mention context: Charlie receives the full channel message when mentioned outside an existing thread.
  • Bug Changed-file loading: Charlie reads changed files correctly on newer Git versions instead of failing on truncated paths.
  • Bug Repository secret fields: Repository secret values no longer invite browser autofill or spellcheck.

Slack integration

Charlie can now work from Slack channels. Mention him in a thread to investigate a question, summarize the discussion, create a Linear issue, or turn the conversation into an implementation plan and pull request.Charlie can use the thread, linked GitHub work, and connected Sentry context while he works. The resulting Linear issue or GitHub pull request is posted back to Slack, keeping the discussion and engineering work connected.
  • Improvement Fresher task branches: Charlie updates a branch with no unique commits to the latest default branch before starting work.
  • Bug No false failures on no-change tasks: Charlie no longer reports an error when a task legitimately finishes without requiring a commit or pull request.
  • Improvement Automatic repository refresh: Repositories added or removed through the GitHub App appear when teams return to the Dashboard.
  • Bug Self-assigned Linear issues: When Charlie creates a Linear issue and assigns it to himself, he begins the work without waiting for another assignment event.

Sentry integration

Charlie can now use Sentry error context when working on bugs. From a Sentry-linked Linear issue, he can gather the stack trace, affected files, recent commits, and related pull requests, then use that evidence to propose an implementation plan.After the team approves the plan, Charlie can create a branch, implement the fix, and open a GitHub pull request linked back to the Linear and Sentry issues.
  • Bug Reviews stay on the requested pull request: Charlie includes the pull-request number in each review request so missing context cannot send him to an unrelated pull request.

Charlie joins Linear Agents

Charlie is now available as a Linear Agent. Teams can assign him to an issue, mention him in a comment, or add him to a project, giving him a first-class identity where engineering work is planned.Charlie can use the issue and its discussion as task context, update the issue as work progresses, and return the resulting GitHub pull request to Linear. His dedicated profile makes his activity visible alongside the rest of the team.Learn more: Charlie for Linear
  • Improvement Repository-native code changes: Charlie uses Git for resets, reverts, and merge conflicts and uses the repository’s package manager for dependency changes.
  • Improvement TypeScript checks in new devboxes: Charlie can run TypeScript checks in repositories that do not install tsc locally.
  • Bug Non-main default branches: Charlie starts devboxes from the repository’s configured default branch instead of assuming main.
  • Bug Current pull-request diffs: Charlie refreshes the base branch before reviewing a pull request so already-merged commits do not reappear in the diff.
  • Bug GitHub App repository additions: Adding repositories to an existing GitHub App installation returns customers to the correct organization without repeating onboarding.

Charlie Research Preview

We’re opening the Charlie Research Preview to more teams. Preview access is free, and teams can use Charlie on real work in a connected GitHub repository while we learn which forms of delegated engineering work are most useful outside our own team.Charlie can review a pull request, explain the problems he finds, apply requested fixes, and turn a well-scoped engineering request into a branch and PR. Setup is handled through the Dashboard, and code changes return to GitHub for review.
  • Improvement Clearer GitHub App setup: The Dashboard waits for the organization to sync, shows progress, and reports a timeout instead of advancing too early.
  • Bug GitHub mention alias: Charlie responds to @Charlie in GitHub comments as well as @CharlieHelps.
  • Bug Correct pull-request base branch: Charlie opens pull requests against the repository’s default branch even when his devbox began on another branch.