Every notable change, in order, with PR numbers. Format follows Keep a Changelog; versions follow SemVer.
192.168.1.100:11434) during the local-vs-remote wizard prompt, the step now auto-prepends http:// and the engine's default port if missing, so typos like gpu-box.local or 192.168.1.100:8000 produce a valid URL instead of a confusing connection error.probe_remote_models), the URL-scheme normalizer (_normalize_url), the VLLM_BASE_URL env-key extraction for remote vLLM, and the error-handling boundaries (connection refused, 404, JSON parse failure).vllm, an API key), stores the value in the engine's *_BASE_URL env var inside the helper script, and skips the local install/launch path entirely.chmod 0600, and the remote branching in healthcheck, info, and start_server for llamacpp.llamacpp remote-mode branching (#123): the llama.cpp helper script, healthcheck, info, and start_server no longer assume a local llama-server binary when LLAMACPP_BASE_URL points at a remote endpoint. Remote endpoints now skip binary discovery, model-file checks, and the spawn path; healthcheck targets the remote URL directly.cp → ccp (#120): the wizard-installed cp alias shadowed the standard POSIX copy command. The Pi local helper script and short alias are now ccp (long alias pi-local is unchanged). Re-running ccl setup migrates existing installs automatically.llamacpp-tuner skill no-ops cleanly when llamacpp is remote (#124): the tuner detects a remote LLAMACPP_BASE_URL and exits with a friendly message rather than attempting to introspect a non-existent local binary.llama-server auto-launches with --spec-type draft-mtp --spec-draft-n-max 5 for MTP variants. Detection runs two passes: a GGUF metadata probe (architecture-specific *.mtp.* keys, *.nextn_predict_layers cross-arch convention, or MTP in general.name/general.architecture) and a filename fallback (*mtp*, word-bounded, case-insensitive). Env vars LLAMACPP_MTP_ENABLED=0/1 and LLAMACPP_SPEC_DRAFT_N_MAX=N (range 1–16) override. Conflict guard recognizes --mmproj and -np/--parallel > 1 and disables MTP with a warning; out-of-range values surface as notes entries on the MTP result.llamacpp-tuner skill: new Claude Code skill that helps optimize llama.cpp server configuration for coding-agent workloads. Includes a benchmark agent and configuration profiles.l identifier in bench_agent.py.llamacpp-tuner skill to A grade.ccl status command (#98, #101): new top-level subcommand that prints the current ccl setup and shortcut availability. Lists all 9 shortcuts (3 harnesses × 3 engine types) with aliases, selected model, engine name and live status, and an availability column (available / unavailable / unconfigured); follows with an overall setup summary. Engine health is checked via each adapter's healthcheck.ccl status consistency: per-harness inference so cx no longer inherits cc's engine; local availability requires both helper script and installed engine; router shortcuts (cc9 / cx9 / cp9, cco / cxo / cpo) need a wired-up alias before claiming available.Default harness/engine/model only show wizard-state values; no longer fabricated from a single detected script.fence_tag.replace("9","").replace("o","") (which turned codex into cdex) with explicit lookup tables; fix _infer_engine_from_script's return annotation to admit None.--model / ANTHROPIC_CUSTOM_MODEL_OPTION, ollama via pi --provider ccl-ollama)..gstack/ workspace directory.ccl run auto-captures and auto-injects conversation context across Claude Code, Codex, and Pi (#62, #93)~/.claude-codex-local/sessions/<harness>.jsonl-p only): freshest other harness's transcript prepended as a [prior context, agent=…] blockccl run --no-context or globally via CCL_SESSION_BRIDGE=0ccl session command group (list / show / sync / truncate / clear)ccl run --native-params flag (#97, #99): forward everything after --native-params -- verbatim to the launched harness — escape hatch for options ccl does not wrap first-class (e.g. --dangerously-skip-permissions)llmfit fallback (#95, #100): when step 1 hardware scan is deferred, opportunistically run llmfit and persist the result to the machine-profile cacheccl run and ccl session cards for the auto-bridgeopenrouter engine with OpenRouterAdapter mirroring the 9router shapecco / cxo / cpo (Claude / Codex / Pi via OpenRouter)anthropic/claude-sonnet-4.6; override via CCL_OPENROUTER_MODELcp alias for Pi + local model sessionsmodels.json configurationccl run subcommand with -p/--prompt flag for scripted workflows (#70, #71)ccl serve command with auto-restart (#60)_llamacpp_models_match helper (#64)cc9/cx9 aliases alongside existing cc/cx_alias_block and _write_helper_script to use 4-way dispatch (#51)WireResult with raw_env field for deferred shell expressions (#51)ccl find-model instead of a hardcoded tiny model path (#49)2.x (2.1–2.8) to sequential integers (1–8) for consistent progress indicators (#47)1–11)llmfit system --json from the wrong nesting level (#46)llama-server and offers its active model as a pickmypy, ruff)For versions prior to v0.8.0, see the complete changelog on GitHub.
Complete changelog on GitHub →