Getting started
Install, log in to Codex once, launch. Everything else on this page is optional.
Install
Windows PowerShell
irm https://raw.githubusercontent.com/treeleaves30760/all-code/main/install.ps1 | iex
macOS
curl -fsSL https://raw.githubusercontent.com/treeleaves30760/all-code/main/install.sh | sh
Linux / WSL
curl -fsSL https://raw.githubusercontent.com/treeleaves30760/all-code/main/install.sh | sh
The installer puts alc in ~/.local/bin (Windows: %USERPROFILE%\.local\bin)
and adds that directory to your user PATH when it can; when it cannot, it
prints the directory to add. On macOS/Linux, restart the terminal or source the
profile it names; PowerShell updates both User PATH and the current session.
ALC_INSTALL_DIR chooses another directory: custom directories are not added
to PATH on macOS/Linux, but are added on Windows. Windows PowerShell 5.1 and
PowerShell 7 are supported, including 32-bit PowerShell on 64-bit Windows.
Optional tmux setup
After alc is downloaded, SHA-256 verified, and installed, the installer checks
tmux -V for 3.2 or newer. Compatible versions are left alone. Otherwise it
tries to install or upgrade tmux using an existing system package manager:
- Windows: WinGet,
arndawg.tmux-windows, user scope, with no forced CPU architecture. The automatic flow accepts package/source agreements and disables interaction. psmux and non-native ports are skipped; an old or unparseable first native port on PATH still blocks later versions. - macOS:
brew install tmux, orbrew upgrade tmuxwhen already installed; Homebrew is never run with sudo. - Linux / WSL: the first available
apt-get,dnf,yum,pacman,zypper, orapk. Non-root installs use cached sudo credentials, or prompt only through a controlling terminal when stdout or stderr is a terminal. Package commands use noninteractive sudo and never read the piped script. pacman does not separately refresh indexes, avoiding a partial upgrade.
Only --tmux needs tmux; ordinary alc and plain --share do not. Missing
managers, unavailable privileges, unsupported packages/architectures, failed
installs, or an old PATH entry hiding the new version produce warnings and
manual instructions, without failing the alc installation. No Homebrew/WinGet
bootstrap, source build, psmux removal, or tmux configuration changes are made.
The version is checked again rather than assuming the package operation worked.
PowerShell appends new User/Machine PATH entries without replacing session-only
paths. If tmux is still missing, restart the terminal and check tmux -V and
alc doctor. Manual fallbacks (choose your platform):
winget install --id arndawg.tmux-windows --exact
brew install tmux # macOS (upgrade if already installed)
sudo apt-get update && sudo apt-get install -y tmux # Debian / Ubuntu / WSL
sudo dnf install -y tmux # Fedora / RHEL (or yum)
sudo pacman -S --needed tmux # Arch; keep the system fully updated
sudo zypper install tmux # openSUSE
sudo apk add --upgrade tmux # Alpine
Installer opt-outs
ALC_NO_TMUX_INSTALL=1 skips automatic tmux setup. Independently,
ALC_NO_PATH_UPDATE=1 disables alc's own PATH edits and session PATH refresh;
open a new terminal for package-manager PATH changes. WinGet can still modify
persistent PATH itself. Set both to avoid dependency-install side effects as
well as installer PATH edits:
curl -fsSL https://raw.githubusercontent.com/treeleaves30760/all-code/main/install.sh | ALC_NO_TMUX_INSTALL=1 ALC_NO_PATH_UPDATE=1 sh
$env:ALC_NO_TMUX_INSTALL = '1'
$env:ALC_NO_PATH_UPDATE = '1'
irm https://raw.githubusercontent.com/treeleaves30760/all-code/main/install.ps1 | iex
# Optional: clear these overrides for future installs in this session.
Remove-Item Env:ALC_NO_TMUX_INSTALL, Env:ALC_NO_PATH_UPDATE
From source, with Rust 1.88 or newer: cargo build --release --locked. The
Codex bridge is part of the binary, so nothing else is needed for the bridge.
Install tmux separately if you want --tmux with a source build.
First run
codex login
alc --codex claude
There is no configuration step. The starter configuration is compiled in, and
alc --codex claude reads it in memory. It needs the auth.json that
codex login writes and claude on PATH, and says which one is missing:
error: Codex credentials were not found at ~/.codex/auth.json; run `codex login` and retry
error: 'claude' is not installed or not on PATH; install it first, then retry `alc claude`: cannot find binary path
Claude Code starts on gpt-6-sol at medium effort — or on whatever your
own ~/.codex/config.toml names — with every GPT model in its /model picker.
Codex bridge has the models, the effort tiers, and the
other seven agents.
Other providers
alc config # keys and per-agent defaults
alc claude # each agent on its configured default
alc --openrouter codex
alc --deepseek pi
alc --ollama claude
alc -p local-vllm opencode
--provider (-p) takes a profile name, or a kind when only one profile of
that kind exists; --anthropic, --openai, --openrouter, --codex,
--ollama, --vllm, --deepseek, --moonshot, --zai, --minimax,
--groq, --xai, and --google are shortcuts. Keys are saved locally or read
from environment variables; the environment wins. See
Providers for what each kind speaks and
Configuration for the files.
Forwarding arguments
Arguments after the agent name go to the agent unchanged, except Claude's
alc-specific --model, --effort, and --save:
alc --codex codex exec "review this repository"
alc --openrouter claude --print "summarize the diff"
alc claude -- --model sonnet # `--` hands even those names to Claude
alc's own flags — --share, --no-share, --bind-lan, --name,
--permission, --tmux, -t — go before the agent name. After it, alc stops
rather than passing them to the agent, unless you put -- straight after the
agent name, which says you meant the agent's flag:
error: `--share` is alc's own flag but it came after the agent's arguments, where it would be passed to claude instead; put it before the agent name, or put the agent's own flags after `--`, as in `alc claude -- <args>`
Preview and check
alc --codex --dry-run claude # the resolved command, secrets redacted; says when a launch would be refused
alc doctor # binaries, credentials, compatibility, defaults, bridge, remote state
alc doctor exits non-zero when it finds an issue and names the fix for each.
Troubleshooting has the error messages.
Update
alc update --check
alc update
alc update picks the release for this OS and CPU, verifies its SHA-256
checksum, and replaces alc. Linux and macOS update immediately; Windows
finishes the replacement after the running alc.exe exits. --force
reinstalls the current release. Running sessions keep the binary they started
with; restart them, and alc hub stop once its sessions are done.
Uninstall
Delete alc from the install directory. alc config path names the
configuration directory; removing it also deletes locally saved API keys.