panes panes

Run every agent.Stay in control.

Agent chat, terminals, Git, search, and worktrees in one native desktop app for engineers coordinating agents all day.

panes  /  Fix git push failures +1 file
Add error handling to the git push command with retry logic.
Codex
I’ll add bounded retries with exponential backoff and preserve the original push error.
src/git/repo.rs
pub async fn push_with_retry(&self) {
  for attempt in 0..3 {
    match self.push().await {
      Ok(_) => return,
      Err(e) => sleep(2.pow(attempt)),
    }
  }
}
Ask for follow-up changes
42%
feat/error-handling
panes
~/panes cargo check
   Compiling panes-core
   Finished dev [unoptimized + debuginfo]
 
~/panes
Add error handling to the git push command with retry logic.
Codex
I found the failure path in git push. I’m adding bounded retries, preserving the original error, and covering the backoff behavior.
8 actions completed4 edits · 4 commands
The change is ready. The targeted tests and cargo check both pass.
14 tests passed12s
The diff is limited to the push path and its tests. No unrelated files changed.
2 files changed+12  -3
The branch is clean and ready for review.
Ready for reviewfeat/error-handling
Ask for follow-up changes
42%
feat/error-handling
Broadcast input · 4 worktrees
Claude Code wt/claude-1
~/panes claude "Refactor auth module"
✓ Reading src/auth/mod.rs...
✓ Analyzing dependencies...
↳ Writing refactored auth
Claude Code wt/claude-2
~/panes claude "Add rate limiting"
✓ Reading src/middleware...
↳ Inserting rate limiter
Antigravity CLI wt/antigravity-1
~/panes antigravity "Optimize queries"
✓ Scanning db/queries.rs...
↳ Rewriting N+1 queries
Codex CLI wt/codex-1
~/panes codex "Write tests"
✓ Discovering test targets...
↳ Generating unit tests
repo.rs
config.rs
1// src/git/repo.rs
2
3pub async fn push_with_retry(&self) -> Result<()> {
4    for attempt in 0..3 {
5        match self.push().await {
6            Ok(_) => return Ok(()),
7            Err(e) => {
8                sleep(Duration::from_secs(2.pow(attempt))).await;
9            }
10        }
11    }
12    Err("push failed after 3 attempts".into())
13}
Changes main
Changes  1↶   + Stage all
landing-page
product-room.css A

From prompt to review-ready change.

Panes keeps the conversation, commands, diff, and approval trail together in one workspace.

Choose the right agent

Use native chat for Codex, Claude, and OpenCode, or launch a supported CLI agent in the terminal.

Track every action

Files read, commands run, terminal output, and Git state remain visible while the task runs.

Review and commit

Review the diff, approve sensitive commands, then stage and commit without leaving the task.

Bring the agents you already use.

Use Codex, Claude, and OpenCode in native chat. Launch Antigravity CLI, Factory Droid, Kilo Code, and Kiro in terminal panes.

One cockpit for the work around the code.

Chat, terminal output, and changes stay attached to the same task.

Open a repo. Keep every agent under control.

Free, open source, and local-first.

Download for macOS