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

# Output Contract

> Understand stdout, stderr, output formats, progress behavior, and scripting expectations.

# Output Contract

Gitquarry is designed to behave well in shells, scripts, and agent workflows.

## Success Output

Supported formats:

* `pretty`
* `json`
* `toon`
* `compact`
* `csv`

### `pretty`

Human-first and concise.

### `json`

Stable structured output intended for tools and scripts.

### `toon`

Token-efficient structured output intended for LLM context. It serializes the same data model as JSON.

### `compact`

Minified JSON intended for pipeline use.

### `csv`

Flat output for export-oriented workflows.

### `source path`

`gitquarry source path <SPEC>` is path-only on `stdout`.

The underlying fetch and cache behavior is delegated to `opensrc`; progress and errors stay on `stderr`.

## Error Output

Errors are:

* written to `stderr`
* prefixed with a symbolic error code
* plain text, not JSON
* returned with exit code `1`

## Progress Output

Progress output always goes to `stderr`.

```bash theme={null}
--progress auto|on|off
```

In `auto`, gitquarry only shows progress when `stderr` is a TTY.

That keeps structured stdout clean during pipelines.

## Example

```bash theme={null}
gitquarry search "rust cli" --format json | jq '.items[0].full_name'
```

That is safe because progress never pollutes stdout.
