# client.improvement_passes

> client.improvement_passes — the improvementPasses operations.

`client.improvement_passes` — the `improvementPasses` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.improvement_passes.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    agent_id: str | UUID | None = None,
    timeout: float | None = None,
) -> ImprovementPassCollectionPage
```

List improvement passes. `GET /v1/improvement-passes`

Newest first, only the passes of agents the caller can read. `?agentId=` narrows them.

## `client.improvement_passes.get()`

```python signature
get(pass_id: str | UUID, /, *, timeout: float | None = None) -> ImprovementPass
```

Fetch an improvement pass. `GET /v1/improvement-passes/{passId}`

Its status, the candidates it compared and what they cost, and once it ends, what it found. Needs `read` on its agent.

## `client.improvement_passes.cancel()`

```python signature
cancel(
    pass_id: str | UUID,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
) -> ImprovementPass
```

Cancel an improvement pass. `POST /v1/improvement-passes/{passId}/cancel`

A running pass stops and ends `cancelled`, writing no proposal. Needs `publish` on its agent.
