> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trynito.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ask and Fusion

> Run a single Nito question or a multi-model Fusion directly from the shell, with attachments, JSON output, and piped input.

`nito ask` and `nito fusion` do the same work as the in-chat [`ask`](/commands/ask-and-continue) and [`fusion`](/commands/fusion) commands, but from your shell. They print an answer and exit, which makes them easy to pipe, script, or drop into a keyboard shortcut.

## Ask

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
nito ask [prompt] [flags]
```

A single question to a single Nito-supported model. The answer prints to standard output.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
# Basic question
nito ask "Summarize what a Merkle proof guarantees."

# Pick a specific model
nito ask --model qwen/qwen3-coder "Write fizzbuzz in Python."

# Attach a document and ask about it
nito ask --file ./report.pdf "Summarize the top three risks."

# Skip web search for a self-contained prompt
nito ask --web-search off "What is 7 times 6?"
```

### Options

| Flag                         | Default            | Effect                                                      |
| :--------------------------- | :----------------- | :---------------------------------------------------------- |
| `--model <id>`               | your saved default | Choose the Nito-supported model for this call.              |
| `--file <path>`              | none               | Attach a local image or document. Repeatable.               |
| `--web-search off\|auto\|on` | `on`               | Hosted web search mode.                                     |
| `--web-fetch <on\|off>`      | `on`               | Allow hosted fetch of URLs you name.                        |
| `--max-tokens <n>`           | `2048`             | Cap the output length.                                      |
| `--stdin`                    | off                | Read the prompt from standard input instead of an argument. |
| `--json`                     | off                | Print a structured JSON response instead of plain text.     |
| `--timeout <duration>`       | `2m`               | Request timeout.                                            |

### Piping Input

With `--stdin`, the whole prompt comes from whatever you pipe in. You cannot also pass a prompt argument, so put your question into the piped text:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
{ echo "What is the root cause of this error?"; cat error.log; } | nito ask --stdin
```

### Structured Output

`--json` prints a machine-readable object instead of prose, which is what you want in a script:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
nito ask --json "Return three tags for this repo." | jq .
```

## Fusion

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
nito fusion [--model <id> --model <id>] [prompt] [flags]
```

One prompt, two or three models, plus a synthesis. This is the client-side form of [Fusion](/commands/fusion): your machine fans the prompt out and a judge model reconciles the answers.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
# Two or three models, one reconciled answer
nito fusion --model qwen/qwen3-coder --model z-ai/glm-5.2 "Is this contract vulnerable to reentrancy?"

# Choose which model writes the synthesis
nito fusion --model qwen/qwen3-coder --model z-ai/glm-5.2 --judge z-ai/glm-5.2 "Stateless JWTs or server sessions?"
```

### Options

| Flag                         | Default     | Effect                                                |
| :--------------------------- | :---------- | :---------------------------------------------------- |
| `--model <id>`               | (required)  | A participant model. Repeat two or three times.       |
| `--judge <id>`               | first model | The model that writes the synthesis.                  |
| `--file <path>`              | none        | Attach a local file to every participant. Repeatable. |
| `--web-search off\|auto\|on` | `on`        | Hosted web search mode.                               |
| `--web-fetch <on\|off>`      | `on`        | Allow hosted fetch of URLs you name.                  |
| `--stdin`                    | off         | Read the prompt from standard input.                  |
| `--json`                     | off         | Print structured JSON.                                |
| `--timeout <duration>`       | `5m`        | Overall Fusion timeout.                               |

<Note>
  Fusion needs a **paid plan**. It also mixes privacy levels by the rules on the [Fusion](/commands/fusion) page: the synthesis lands at the least-private level among the participants, so a single Anonymous model pulls the whole run to Anonymous.
</Note>

## Choosing a Model

Both commands accept `--model`. Without it, `ask` uses your saved default; Fusion always needs its participants named explicitly. To see what is available to your account:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["typescript","python","curl"]}}
nito agent models
```

See [Choosing a Model](/commands/choosing-a-model) for how the saved default works.

## Related

<CardGroup cols={2}>
  <Card title="Scripting and Automation" icon="terminal" href="/cli/scripting-and-automation">
    Output modes, exit codes, and piping for pipelines.
  </Card>

  <Card title="Multi Model Answer Checker" icon="scale-unbalanced" href="/cookbook/second-opinion">
    A full recipe: cross-check an answer against independent models with Fusion.
  </Card>
</CardGroup>
