BackGuides

How to Run Codex and Claude Code Side by Side on One Project

Run Codex and Claude Code threads in one Aiola workspace, choose execution locations, and check available provider usage in Central settings.

Panagiotis Visilias

Oct 26, 2026 · 6 min read

Painted desk scene with two notebooks beside a laptop

Run Codex and Claude Code as separate threads in one Aiola workspace. Choose each thread's provider and execution location before sending its first message. Arrange chats in Split or Canvas, and check available provider usage in Central Settings.

Why two threads belong on one repository

A workspace is one project in Aiola, bounded by a local folder. Its repository context includes the root folder, Git remote, branches, and worktrees. Threads, agents, instructions, brief.md, and rules.md belong to that workspace.

Select the workspace in the rail before opening its pages. The active workspace supplies the repository root and project IDs used by pages and chat. Chat can use project files, branches, tasks, GitHub records, and saved project context.

If you start from Central Home, select the target workspace before sending. That selection scopes files, branches, agents, and record mentions.

A draft becomes a thread when you send its first message. Existing threads retain their original workspace and execution context. You cannot reassign a thread to another workspace. The chat documentation explains these boundaries and composer controls.

How you start one thread for each CLI

Use this sequence for two drafts in the same workspace:

  1. Install and authenticate both CLIs using the steps below.
  2. Enable each authenticated provider in Central Settings, then Providers.
  3. On the first draft, use Provider and model to select Codex and a visible model.
  4. On the second draft, select Claude Code and a visible model.
  5. Set each draft's execution location and branch controls before sending its first message.

Provider and model selects the local AI runtime and model. Other composer controls depend on provider capabilities. Reasoning selects an available reasoning level, while Fast Mode enables a model-dependent option. Context window shows and configures context usage where supported. Permission mode controls execution approval behavior.

The Agent control applies a workspace agent. Type / for grouped actions, models, reasoning levels, workspace commands, agents, and skills. Entries reflect the active workspace and provider capabilities.

Workspace defaults select from globally enabled, visible models. Changing a default does not install, authenticate, or globally enable a provider. Context-defining choices can lock after a thread starts.

Other supported agents include Cursor, Grok CLI, OpenCode, and Antigravity.

How you place the two threads

Open workspace Terminals using the workspace terminal control. Its persistent layouts support execution and reference surfaces in Split and Canvas modes.

Split mode stores panes in a horizontal or vertical tree. Add, resize, swap, or move panes to arrange the work. Browser and terminal tabs can move between panes or be reordered.

Canvas supports Chat, Terminal, Browser, Image, and File cards. It saves card positions, sizes, contents, and focus state on a pan-and-zoom surface. Use the Columns layout for cards arranged side by side.

For another window, use the thread popout action from chat or the sidebar. An existing-thread popout keeps its workspace fixed. A new-thread popout starts as a draft; sending creates its thread.

The dashboard panel supports Review, multiple browser tabs, Files, and Terminal. Reorder or close tabs, and expand, collapse, or display the panel fullscreen beside chat.

When you choose Worktree or Local

In the chat composer, use Project or new worktree to select the execution location. Branch controls select the branch or worktree base and expose branch actions. Check these choices on both drafts before starting, because context-defining choices can lock afterward.

The task execution documentation defines Local and Worktree run modes. Local runs in the workspace checkout. Worktree runs in an isolated Git worktree. Tasks can override the workspace default.

For chat, choose the execution location in the composer. For tasks, choose the run mode on the task. Workspace Settings, then Tasks, sets the default task run mode. That task setting is separate from the chat composer's location control.

Where both usage limits sit

Providers and Usage are app-wide Central settings. Open Central Settings, then Usage, for available provider data. The workspace route /settings/usage redirects to Central Usage.

Claude Code data, when available, comes from OAuth quota plus local session and statistics data. Codex data, when available, comes from the authenticated ChatGPT usage endpoint. Available fields differ by provider and account.

Select the circular-arrow icon at the right of the Usage heading to request current data. The button has no visible text label. The provider and usage documentation lists these sources and setup controls.

How you sign each CLI in

Aiola does not accept provider API keys on the Providers page. Install each CLI and authenticate in a terminal.

For Claude Code, install with npm install -g @anthropic-ai/claude-code. Then run claude login with your Anthropic or Claude CLI account.

For Codex, install with npm install -g @openai/codex. Then run codex login with your OpenAI or ChatGPT CLI account.

Open Central Settings, then Providers, and select Re-check to read local authentication state. An installed provider cannot be enabled until authenticated. A failed probe is reported separately from an unauthenticated state.

The page can show installation state, version, binary path, authentication status, account email, subscription, and discovered models. Expand an authenticated provider to hide, show, or reorder models. Hidden models remain on that settings page but disappear from model pickers.

You bring your own subscriptions, and Aiola adds no token markup.

What you check before you combine branches

Connect the repository remote in Workspace Settings, then Git, before using workspace GitHub. Its Pull Requests tab shows state, details, timeline, comments, changed files, and diff statistics.

Open a pull-request record to inspect those details. Chat opens or starts an AI conversation for an open pull request. Fix failing checks addresses failed checks from the list or action menu. Merge is available for eligible pull requests.

The GitHub documentation describes these actions. Git settings control whether AI actions use worktrees and whether results are written back.

Try it in Aiola. Download the free desktop app, then open your repository as a workspace. Desktop version 2.0.8 supports macOS 12 or newer and Windows 10 or newer. There is no Linux build.

Common questions

More from the blog

Build, ship and fix in one app

Errors, user feedback, GitHub and analytics live next to your coding agents in one desktop app, so every issue becomes a task an agent can take.