Documentation

Everything you need to install, configure, and use cc-term.

Installation

cc-term runs on macOS (Intel and Apple Silicon). The installer handles all dependencies via Homebrew.

curl -fsSL https://ttyd.ink/install | bash

Or clone and run manually:

git clone https://github.com/xbsura/cc-term.git
cd cc-terminal
./install.sh
The installer is idempotent. Run it again anytime to update cc-term without losing your sessions or configuration.

What gets installed

Quick Start

# Launch default session
cc-term

# Launch a named session
cc-term myproject

# Enable remote access (inside a session window)
cc-term -r

# List all sessions
cc-term -ls

Requirements

RequirementDetails
OSmacOS 12+ (Monterey or later)
ArchIntel (x86_64) or Apple Silicon (arm64)
HomebrewAuto-installed if missing
Browser (remote)Any modern browser — Chrome, Safari, Firefox, Edge

Sessions

Sessions are persistent tmux sessions managed by cc-term. Each session opens in a new iTerm2 tab.

# Open default "main" session
cc-term

# Open named session
cc-term myproject

# Open multiple sessions at once
cc-term api,frontend,worker

# List sessions
cc-term -ls

# Delete a session
cc-term -delete myproject
Sessions survive terminal crashes, disconnects, and reboots (via tmux-resurrect + tmux-continuum). They auto-save every 10 minutes.

Remote Access

Share any session over the web. Access from your phone, tablet, or another computer.

Enable remote for the current session

Inside a cc-term tmux window, run:

cc-term -r

This registers the current session with the proxy server and gives you a URL + QR code.

Enable remote from outside tmux

# Register a specific session
cc-term myproject -r

# Register all sessions
cc-term -r

# Register with password protection
cc-term myproject -r -u admin -p secret

# Register as private (hidden from aggregate page)
cc-term myproject -r -s

Status indicator

When a session is registered for remote access, the tmux status bar shows a green R on the far right. If the tunnel connection drops, it turns red.

Stop remote access

cc-term -server -stop

Keyboard Shortcuts

The tmux prefix key is Ctrl+A (not the default Ctrl+B).

ShortcutAction
F5Split horizontally (top/bottom)
F6Split vertically (left/right)
F11Previous window
F12Next window
Ctrl+A → arrowSwitch between panes
Option+arrowResize pane
Ctrl+A → rReload tmux config

Web UI shortcuts

ShortcutAction
⌘↑ / ⌘↓Switch sessions
Click pane in sidebarSwitch active pane
Click window tabSwitch window

Windows & Panes

Each session can have multiple windows (tabs in the tmux status bar) and each window can have multiple panes (splits).

# Inside tmux (after Ctrl+A prefix):
# c     - create new window
# n     - next window
# p     - previous window
# ,     - rename window
# &     - kill window

# Splitting:
# F5    - horizontal split
# F6    - vertical split

AI Providers

cc-term can manage AI provider API keys for Claude Code and other tools.

# List providers
cc-term -p -ls

# Add a new provider
cc-term -p -new -api https://api.example.com -key sk-xxx

# Edit a provider
cc-term -p -edit <id> -key sk-newkey

# Delete a provider
cc-term -p -delete <id>

Self-Hosting

By default, cc-term tunnels through ttyd.ink. You can run your own proxy server instead.

# Start local proxy server
cc-term -server --port 9999

# Register sessions against your local server
cc-term -r --local

# Or specify a custom host via environment variables
export CC_PROXY_HOST=my-server.example.com
export CC_PROXY_PORT=443
export CC_PROXY_PROTOCOL=https
cc-term -r
Self-hosted mode requires a publicly accessible server if you want to access sessions from outside your network. See the deploy guide on GitHub for nginx and systemd configuration.

Server CLI

CommandDescription
cc-term -serverStart the proxy server (foreground)
cc-term -server -bStart in background
cc-term -server --port 8080Custom port
cc-term -server --token mysecretRequire token for registration API
cc-term -server -stopStop all server processes

CLI Reference

CommandDescription
cc-termOpen default "main" session
cc-term <name>Open or create named session
cc-term -new <name>Force create new session
cc-term -lsList all tmux sessions
cc-term -delete <name>Delete a session
cc-term -rEnable remote (in-session: current; outside: all)
cc-term <name> -rOpen session + enable remote
cc-term -r -qRemote without QR code
cc-term -r -sRegister as private session
cc-term -r -u user -p passRemote with auth
cc-term -serverStart proxy server
cc-term -server -stopStop proxy server
cc-term -p -lsList AI providers
cc-term -hShow help
cc-term -hhShow detailed help

File Structure

~/.cc-term/
├── bin/                  # Executables
│   ├── cc-term           # Main CLI
│   ├── _cc-term-core     # Core logic
│   ├── cc-proxy-server.py
│   ├── cc-tunnel-client.py
│   └── ...
├── config/
│   ├── bash_profile      # Isolated bash config
│   ├── tmux.conf          # Tmux config
│   ├── vimrc              # Vim config
│   ├── remote/            # Remote server HTML
│   └── ttyd/              # Web terminal UI
├── providers/             # Provider scripts
├── providers.json         # AI provider config
├── run/                   # PID files, runtime state
├── state/                 # Session state
├── tmux/plugins/          # TPM plugins
└── venv/                  # Isolated Python venv

Uninstall

cc-term is fully self-contained. To remove it:

# Stop any running processes
cc-term -server -stop

# Remove the installation directory
rm -rf ~/.cc-term

# Remove the symlink
rm -f $(brew --prefix)/bin/cc-term
This does not uninstall Homebrew packages (tmux, vim, etc.) that may be used by other tools. Remove those manually if desired.