--env novita. The Harbor CLI still runs on your local machine or server, while the task environment, agent process, command execution, and verification run inside the Novita Sandbox.
Install Harbor with the novita extra so the Novita Sandbox SDK and related dependencies are available.
CLI
[novita] extra installs the optional dependencies needed by Harbor’s Novita environment provider; it does not change the Harbor command syntax.
Set NOVITA_API_KEY so Harbor can create Novita templates and sandboxes. If you also want the agent to call Novita’s OpenAI-compatible LLM API, pass the same key through the OpenAI-compatible environment variables.
CLI
OPENAI_BASE_URL is used by OpenAI-compatible clients. OPENAI_API_BASE is included because some agent runtimes and LiteLLM-based tools read that variable name instead.
The following command runs Harbor’s registry dataset hello-world@1.0 on Novita Sandbox using mini-swe-agent and the Novita model moonshotai/kimi-k3. This example does not require cloning the Harbor source repository.
CLI
EnvironmentConfig(type=EnvironmentType.NOVITA), which is the code equivalent of --env novita. Harbor still manages the dataset, agent execution, verifier, job output, and Novita Sandbox lifecycle.
CLI
Python
datasets=[...] with tasks=[TaskConfig(path=Path("/path/to/task"))] and import TaskConfig from harbor.models.trial.config. Keep the same Novita environment config and agent model settings.
Do not put the Novita Sandbox key only inside AgentConfig.env. NOVITA_API_KEY must be available to the host Python process so Harbor can create the sandbox. The OpenAI-compatible model settings belong in AgentConfig.env, because those values are forwarded to the agent running inside the sandbox.
The smoke test above uses Harbor’s registry dataset, so it does not need local Harbor source code. If you use --path, Harbor treats the value as a local file-system path and the directory must exist on the machine running the Harbor CLI.
CLI
--dataset hello-world@1.0 for the simplest installed-package smoke test. Use --path only when you already have a local Harbor task directory.
When --env novita is selected, Harbor resolves the execution backend to its Novita environment provider. For a standard single-container task, Harbor builds or reuses a Novita template for the task environment, creates a Novita Sandbox from that template, uploads task files, and runs the agent and verifier commands inside the sandbox.
The agent is installed and executed inside the sandbox. On first use, agent setup may install runtime dependencies such as Python packages or Node.js tooling inside the sandbox. Harbor writes agent logs and task results back to the local jobs/ directory after the run.
Use Novita Sandbox when you want Harbor workloads to run in remote, isolated environments instead of relying on local Docker capacity. This is useful for CI, shared development servers, high-concurrency benchmark runs, and experiments that need reproducible sandbox lifecycle management across many trials.