gitwtfhub

wtf is agentctl?

leofmarciano/agentctl — explained in plain English

Analysis updated 2026-05-18

7RustAudience · developerComplexity · 3/5LicenseSetup · moderate

TL;DR

A command line bridge that lets you hand off one coding task between the native Claude Code and Codex terminals, keeping shared context each time you switch.

Mindmap

mindmap
  root((agentctl))
    What it does
      Bridge Claude Code and Codex
      Capture session on exit
      Project context on switch
    How it works
      Canonical event log
      Worktree writer lock
      Native terminal UI kept
    Tech Stack
      Rust
      Claude Code CLI
      Codex CLI
    Audience
      Developers
      Coding agent users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Start a coding task in Claude Code, then hand it off to Codex to continue with full context.

REASON 2

Get a second AI assistant's review of work already done by another assistant in the same worktree.

REASON 3

Prevent two coding assistants from editing the same files at the same time with a shared lock.

REASON 4

Run agentctl doctor to check that your provider CLIs are compatible before switching between them.

What's in the stack?

RustClaude CodeCodexGit

How it stacks up

leofmarciano/agentctlbrowsersync/bslivecodeitlikemiley/snip-cli
Stars777
LanguageRustRustRust
Last pushed2026-07-192024-12-09
MaintenanceActiveStale
Setup difficultymoderatehardeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires both Claude Code and Codex CLIs installed and authenticated separately before use.

MIT license: use, modify, and share freely, including commercially, as long as you keep the copyright notice.

Wtf does this do

Agentctl is a command line tool that lets you move the same coding task back and forth between two different AI coding assistants, Claude Code and Codex, while working in the same folder on your computer. It is not a new chat interface of its own. Instead, it opens the real Claude Code or Codex terminal for you to work in normally, with all of that tool's own login, permissions, and features intact. What agentctl adds is a bridge: when you finish working in one assistant and exit it, agentctl captures what happened, and when you switch to the other assistant, it hands that context over so the new session understands what was already done. The problem it solves is that a coding task lives not just in a chat history but also in the files that changed, the commands that were run, and the decisions made along the way. If you simply start the other tool by hand, that connection is lost. Agentctl keeps a canonical record of the session and makes sure whichever assistant you open next sees the current state of the work, without ever typing prompts on your behalf or running in the background while another assistant is active. To use it, you first install and log into both Claude Code and Codex separately, then run a health check command. From inside a project folder, you start a new named session with a chosen provider, work normally inside that assistant's own interface, and exit it when a turn is done. To continue the same task in the other assistant, you run a switch command naming the session, and that assistant opens with the prior work already reflected as context. You can keep switching back and forth this way, and only one assistant can actively hold the workspace lock at a time so two sessions cannot edit the same files simultaneously. The project includes an automated test that opens Claude, checks that a second writer is blocked, exits, opens Codex, exits, and returns to the original Claude session to confirm the handoff and syncing work correctly, without submitting any prompts to a model. Agentctl is written in Rust, is still before its first stable release, and is released under the MIT license. Its README recommends running its doctor command after updating either Claude Code or Codex, since the tool depends on details of how those provider tools behave.

Yoink these prompts

Prompt 1
Walk me through installing agentctl and running agentctl new --provider claude in my project.
Prompt 2
Explain what happens to my Claude Code session's context when I run agentctl switch codex.
Prompt 3
Show me how agentctl's worktree writer lock prevents Claude Code and Codex from editing files at once.
Prompt 4
Help me understand the canonical event log and sync lag shown in agentctl's status output.

Frequently asked questions

wtf is agentctl?

A command line bridge that lets you hand off one coding task between the native Claude Code and Codex terminals, keeping shared context each time you switch.

What language is agentctl written in?

Mainly Rust. The stack also includes Rust, Claude Code, Codex.

What license does agentctl use?

MIT license: use, modify, and share freely, including commercially, as long as you keep the copyright notice.

How hard is agentctl to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is agentctl for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.