| name | harbor |
| description | CLI toolkit for managing containerized LLM services. Use when the user wants to start, stop, configure, or manage AI/LLM services like Ollama, Open WebUI, llama.cpp, vLLM, LiteLLM, ComfyUI, and 250+ others. Triggers on requests to "run a model", "start ollama", "set up an LLM", "configure harbor", "manage services", "check what's running", "harbor launch", Boost custom workflows, or any Docker-based AI service management task. |
| allowed-tools | Bash(harbor:*), Bash(docker:*) |
Harbor CLI
Harbor is a containerized LLM toolkit — a Docker Compose project with a CLI for managing 250+ AI services (backends, frontends, APIs, tools). Install via npm i -g @avcodes/harbor or clone from GitHub.
Core Workflow
- Start services:
harbor up ollama webui
- Check status:
harbor ps
- Configure:
harbor config set OLLAMA_MODEL llama3.2
- Use:
harbor open webui or harbor url webui
- Stop:
harbor down
harbor up ollama webui
harbor ps
harbor open webui
harbor down
Service Lifecycle
harbor up <service> [service...]
harbor up --tail
harbor up --open
harbor up --no-defaults
harbor down
harbor restart [service]
harbor ps
harbor logs <service>
harbor stats
harbor build <service>
harbor pull <service>
harbor pull <model>
harbor exec <service> <cmd>
harbor shell <service>
harbor run <service> [cmd]
harbor run <alias>
harbor attach <service>
Configuration
Harbor uses a layered config system. Never edit .env directly.
harbor config ls
harbor config get <KEY>
harbor config set <KEY> <VALUE>
harbor config unset <KEY>
harbor config search <query>
harbor config reset
harbor config update
harbor env <service>
harbor env <service> <key>
harbor env <service> <key> <value>
harbor env <service> unset <key>
Common Config Keys
harbor config set HARBOR_OLLAMA_MODEL llama3.2
harbor config set HARBOR_LLAMACPP_MODEL "bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M"
harbor config set HARBOR_VLLM_MODEL "Qwen/Qwen2.5-3B-Instruct"
harbor defaults ls
harbor defaults add ollama
harbor defaults add webui
harbor defaults rm webui
Service Discovery
harbor ls
harbor ls --active
harbor url <service>
harbor url --lan <service>
harbor url --internal <service>
harbor open <service>
harbor qr <service>
Profiles
Save and restore full service configurations.
harbor profile ls
harbor profile save <name>
harbor profile load <name>
harbor profile rm <name>
Aliases
Define reusable command shortcuts.
harbor alias ls
harbor alias get <name>
harbor alias set <name> <command>
harbor alias rm <name>
harbor run <alias>
Tunnels
Expose services to the internet via Cloudflare tunnels.
harbor tunnel <service>
harbor tunnel down
harbor tunnels ls
harbor tunnels add <service>
harbor tunnels rm <service>
Volumes
Mount custom host directories into service containers.
harbor volumes ls
harbor volumes ls <service>
harbor volumes add <svc> <src>:<dest>
harbor volumes rm <service> <index>
harbor volumes clear <service>
Model Management
Unified model management across backends.
harbor models
harbor pull <model>
harbor ollama <cmd>
Service-Specific Configuration
Many services have dedicated subcommands for configuration.
harbor ollama <cmd>
harbor llamacpp <cmd>
harbor vllm <cmd>
harbor litellm <cmd>
harbor tgi <cmd>
harbor aphrodite <cmd>
harbor tabbyapi <cmd>
harbor mistralrs <cmd>
harbor sglang <cmd>
harbor dmr <cmd>
harbor mlx <cmd>
harbor kobold <cmd>
harbor ktransformers <cmd>
harbor webui <cmd>
harbor chatui <cmd>
harbor comfyui <cmd>
harbor langflow <cmd>
harbor boost <cmd>
harbor openai <cmd>
harbor jupyter <cmd>
harbor mcp <cmd>
harbor hermes <cmd>
Harbor Boost — Agentic Modules
Harbor Boost is an LLM proxy (harbor up boost) that chains modules before the downstream completion. Agentic modules add web research, task anchoring, deliverable audits, and scope guards for coding agents. Full reference: docs/5.2.3-Harbor-Boost-Modules.md.
Modules
| Module | Use when |
|---|
quickhop | Fast web research before answering — API docs, release notes, error lookups. Low latency (2 searches). Skips acks and implementation-only turns. |
deephop | Deeper two-hop research — migrations, version comparisons, breaking changes. Higher budgets; structured brief with uncertainties. |
caveman | Terse output compression — injects caveman-style rules every completion (lite/full/ultra). Governs how the model talks. |
ponytail | YAGNI minimal-code ladder — stdlib first, shortest diff wins. Governs what the model builds. |
autocheck | Quality gate on coding deliverable turns — draft → audit → optional revise. Explanations and short acks pass through. |
diffscope | User states file scope (only X, don't touch Y) — compares cited paths in the draft against constraints; one revision hop if out of scope. |
Pairs: quickhop for speed, deephop for depth. caveman + ponytail for terse/YAGNI style. autocheck + diffscope for scoped deliverable audits.
harbor launch --workflow
One-shot wiring for Boost module workflows. Put launch options before the tool name; everything after the tool name passes through unchanged.
| Behavior | Detail |
|---|
| Starts | Boost + --backend (default: first running backend, else llamacpp) |
| Routes tool to | <module>-<model> (e.g. quickhop-qwen2.5-coder:7b) |
| Auto-starts SearXNG | when the workflow includes quickhop or deephop |
--web and --workflow cannot be combined. claude does not support Boost workflows (Anthropic API); use OpenAI-compatible host tools (codex, opencode, copilot, droid, hermes, mi, openclaw, pi, pool).
harbor launch --workflow quickhop --backend ollama --model qwen2.5-coder:7b codex
harbor launch --workflow autocheck --backend ollama --model qwen2.5-coder:7b opencode
Workflows that include autocheck or diffscope need a workspace bind mount (see Setup). Add write_workspace_file to HARBOR_BOOST_TOOLS and pass --sandbox workspace-write when you want the model to write files.
Setup
harbor up ollama boost
harbor boost modules add tools quickhop deephop autocheck caveman ponytail
harbor config set HARBOR_BOOST_SEARXNG_URL http://searxng:8080
harbor up searxng
harbor config set HARBOR_BOOST_TAVILY_API_KEY <key>
harbor config set boost.workspace "$(pwd)"
harbor config set boost.workspace.root /workspace
harbor config set HARBOR_BOOST_TOOLS 'read_workspace_file;grep_workspace;list_workspace_files;write_workspace_file'
harbor config update
harbor restart boost
harbor url boost
Notes: autocheck triggers only on deliverable turns (≥2 signals, e.g. coding keyword + file path). Define multi-step custom workflows via HARBOR_BOOST_WORKFLOWS or workflows.yaml.
Debug Metrics (Troubleshooting)
When agentic modules skip or trigger unexpectedly, enable compact per-module debug metrics. Boost emits a one-line summary before the final completion so you can see what each module did on that turn.
Global (all requests):
harbor config set HARBOR_BOOST_DEBUG true
harbor restart boost
Per request — overrides HARBOR_BOOST_DEBUG for a single completion:
curl "$BOOST_URL/chat/completions" \
-H "Authorization: Bearer $BOOST_KEY" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "Fix the auth bug in src/api.ts"}],
"@boost_debug": true
}'
Accepted truthy values: true, 1, yes, on. Use @boost_debug: false to silence metrics when global debug is on.
Example status line:
Debug: quickhop skipped (acknowledgment) 3ms | deephop skipped (implementation) 2ms | autocheck triggered 840ms +2calls [verdict=pass,outcome=delivered]
Each segment is one module: triggered or skipped, optional (reason), wall-clock duration_ms, optional +Ncalls for extra LLM/tool hops, and [key=value,...] extras (e.g. gate_reason, verdict, outcome, grounding_mode).
Common skip reasons:
| Reason | Module | Meaning |
|---|
acknowledgment | quickhop, deephop | Short ack / non-research turn |
not_deliverable | autocheck | Fewer than two deliverable signals |
empty_message | any | No user content to process |
Related: @boost_show_audit (or HARBOR_BOOST_AUTOCHECK_SHOW_AUDIT=true) appends an autocheck audit footer and HTML findings artifact — use when you need full audit detail, not just the compact debug line.
Launching Service CLIs
harbor launch starts a service CLI pre-configured to use running Harbor services. Runs from the directory you invoke it (preserves project context).
harbor launch <tool> [args]
harbor launch --backend <svc> <tool>
harbor launch --model <model> <tool>
harbor launch --workflow <module> <tool>
harbor launch --web <tool>
harbor launch --config <tool>
harbor aider
harbor aichat
harbor fabric
harbor opint
harbor plandex
harbor gptme
harbor nanobot
harbor repopack
harbor facts
harbor mi
HuggingFace Integration
harbor hf <cmd>
harbor hf dl <spec>
harbor hf find <query>
harbor hf path <spec>
harbor hf token [value]
harbor hf cachedir [path]
harbor hf parse-url <url>
Diagnostics and Utilities
harbor info
harbor doctor
harbor smi
harbor top
harbor size
harbor find <file>
harbor how <question>
harbor history
harbor eject
harbor home
harbor vscode
harbor fixfs
Compose Integration
Harbor generates Docker Compose configurations dynamically. Use harbor cmd and harbor eject for direct Compose access.
$(harbor cmd <service>)
harbor eject
Common Patterns
Quick Start with Ollama + Web UI
harbor up ollama webui
harbor pull llama3.2
harbor open webui
Run llama.cpp with a Specific Model
harbor config set HARBOR_LLAMACPP_MODEL "bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M"
harbor up llamacpp webui
harbor open webui
Multi-Backend Setup
harbor up ollama vllm litellm webui
harbor config set HARBOR_VLLM_MODEL "Qwen/Qwen2.5-3B-Instruct"
harbor pull llama3.2
harbor open webui
Expose a Service to the Internet
harbor up ollama webui
harbor tunnel webui
Use a Profile for Reproducible Setups
harbor up ollama webui
harbor config set HARBOR_OLLAMA_MODEL llama3.2
harbor profile save my-setup
harbor profile load my-setup
harbor up
Run Evaluations
harbor eval
harbor bench
harbor k6
harbor promptfoo <cmd>
harbor lmeval <cmd>
Launch Coding Assistants
harbor up ollama
harbor pull qwen2.5-coder:7b
harbor launch --model qwen2.5-coder:7b aider
harbor launch --workflow quickhop --backend ollama --model qwen2.5-coder:7b codex
harbor launch --workflow autocheck --backend ollama --model qwen2.5-coder:7b opencode
Important Notes
- Logs hang:
harbor logs tails by default — in scripts/agents, use docker logs <container> with --tail flag instead.
- Config not .env: Never edit
.env directly. Use harbor config get/set.
- Default services:
harbor up with no args starts services listed in harbor defaults ls.
- Service names: Use
harbor ls to discover exact service handles.
- Docker required: Harbor requires Docker and Docker Compose. Run
harbor doctor to verify.