---
title: "overlane ci logs"
description: "Show a run's logs, with secrets masked"
---

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

# overlane ci logs

{/* Generated by apps/docs/scripts/generate.mjs (CLI pages from the command registry in packages/cli). Do not edit; run `pnpm --filter @overlane/docs gen`. */}

Prints each job's log from R2. Secret values and anything shaped like a provider key are masked before storage and again here.

## Usage

```sh
overlane ci logs run
```

## Arguments

| Argument | Required | Description |
| --- | --- | --- |
| `run` | yes | The run ID |

## Examples

```sh
overlane ci logs run_abc123
```

## Behavior

- Effect: `read` (changes nothing).
- Needs credentials: yes. Uses the network: yes.
- Supports `--dry-run`: no. Accepts `--force`: no.
- Machine-readable description: `overlane schema ci logs`.

## Result

With `--json` (the default when stdout is not a terminal) the command prints this JSON Schema's shape on stdout.

```json
{
  "type": "object",
  "properties": {
    "tenantId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
      "description": "tenant identifier"
    },
    "runId": {
      "type": "string"
    },
    "jobs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "log": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "log"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "tenantId",
    "runId",
    "jobs"
  ],
  "additionalProperties": false
}
```

See [exit codes](/cli/#exit-codes) for the status the process returns.

Source: https://docs.overlane.app/cli/ci-logs/index.mdx
