> ## Documentation Index
> Fetch the complete documentation index at: https://agent-compass.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Terminus-2

`terminus2` runs the [Terminus-2](https://www.harborframework.com/docs/agents/terminus-2) terminal agent for [Terminal-Bench 2](/en/user_guide/modules/benchmarks/terminal_bench_2), [Verified](/en/user_guide/modules/benchmarks/terminal_bench_2_verified), and [2.1](/en/user_guide/modules/benchmarks/terminal_bench_2_1) tasks. It accepts the model credentials supplied by `--model-*` and supports `openai-chat` and `openai-responses` model APIs.

## How it works

* **Prepare a terminal session.** The harness starts Terminus-2 in the task environment and operates a tmux terminal pane in the workspace prepared by the benchmark and environment recipe.
* **Run the agent loop.** Model output is decoded with the selected response parser. The agent sends shell keystrokes, observes the terminal, and continues until it calls task completion or reaches a configured limit.
* **Control context and return results.** Context summarization is enabled by default for long terminal sessions. The harness returns the normalized trajectory, final answer, status, and execution metadata as a `RunResult`.

## Parameters

Pass harness options with `--harness-params '{...}'`. The table intentionally exposes only behavior that normally needs tuning; terminal dimensions, service aliases, recording, and other integration options use their built-in defaults.

### Parameter reference

<div style={{ overflowX: 'auto' }}>
  <table style={{ minWidth: '1040px', width: '100%' }}>
    <thead>
      <tr>
        <th style={{ whiteSpace: 'nowrap' }}>Parameter</th>
        <th style={{ whiteSpace: 'nowrap' }}>Type</th>
        <th style={{ whiteSpace: 'nowrap' }}>Default</th>
        <th style={{ whiteSpace: 'nowrap' }}>Choices / values</th>
        <th>Description</th>
      </tr>
    </thead>

    <tbody>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>parser\_name</code></td><td style={{ whiteSpace: 'nowrap' }}>string</td><td><code>json</code></td><td><code>json</code> / <code>xml</code> / <code>tool\_call</code></td><td>Response format.</td></tr>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>max\_turns</code></td><td style={{ whiteSpace: 'nowrap' }}>int</td><td><code>300</code></td><td>integer ≥ 1</td><td>Maximum agent turns for one task.</td></tr>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>timeout</code></td><td style={{ whiteSpace: 'nowrap' }}>int</td><td><code>14400</code></td><td>integer ≥ 1</td><td>Harness wall-clock timeout in seconds.</td></tr>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>enable\_summarize</code></td><td style={{ whiteSpace: 'nowrap' }}>bool</td><td><code>true</code></td><td><code>true</code> / <code>false</code></td><td>Enable context summarization for long trajectories.</td></tr>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>modality</code></td><td style={{ whiteSpace: 'nowrap' }}>string</td><td><code>llm</code></td><td><code>llm</code> / <code>vlm</code></td><td>Agent modality.</td></tr>
      <tr><td style={{ whiteSpace: 'nowrap' }}><code>interleaved\_thinking</code></td><td style={{ whiteSpace: 'nowrap' }}>bool</td><td><code>false</code></td><td><code>true</code> / <code>false</code></td><td>Enable interleaved thinking for compatible models.</td></tr>
    </tbody>
  </table>
</div>

### Model API and response format

Supply the model endpoint and credentials through `--model-base-url` and `--model-api-key`; `openai-chat` and `openai-responses` are supported through `--model-api-protocol`. Use `parser_name` only when the model's response format differs from the default JSON tool-call format.

## Run examples

`terminus2` is the second positional argument to `agentcompass run <benchmark> terminus2 <model>`.

<Tabs>
  <Tab title="Default configuration">
    Run Terminus-2 with its built-in Terminal-Bench defaults.

    ```bash theme={"system"}
    agentcompass run \
      terminal_bench_2 \
      terminus2 \
      "$MODEL_NAME" \
      --env docker \
      --model-base-url "$MODEL_BASE_URL" \
      --model-api-key "$MODEL_API_KEY"
    ```
  </Tab>

  <Tab title="Custom parameters">
    Adjust the response parser, turn limit, and harness timeout for a model or workload.

    ```bash theme={"system"}
    agentcompass run \
      terminal_bench_2 \
      terminus2 \
      "$MODEL_NAME" \
      --env docker \
      --harness-params '{
        "parser_name": "json",
        "max_turns": 120,
        "timeout": 7200
      }' \
      --model-base-url "$MODEL_BASE_URL" \
      --model-api-key "$MODEL_API_KEY"
    ```
  </Tab>
</Tabs>

## Output

For each task, the harness returns a `RunResult` containing the normalized trajectory, final answer, execution status, and diagnostic metadata. The benchmark writes these task details and aggregate metrics under `results/<benchmark>/<model>/<run>/`; see [Results](/en/user_guide/results).
