---
title: "Share output from Codex — Krowk setup"
canonical_url: "https://krowk.com/docs/codex"
last_updated: "2026-10-01T21:56:00.321Z"
meta:
  description: "Install the krowk binary, add one line to AGENTS.md, and Codex publishes screenshots and recordings to permalinks that carry the commit and branch behind them. Works in Codex CLI and Codex cloud."
  "og:description": "Install the krowk binary, add one line to AGENTS.md, and Codex publishes screenshots and recordings to permalinks that carry the commit and branch behind them. Works in Codex CLI and Codex cloud."
  "og:title": "Share output from Codex — Krowk setup"
---

**Docs**

# **Krowk in Codex**

Install the binary, add one line to AGENTS.md, and the agent publishes the screen it changed rather than telling you about it.

[The CLI reference](https://krowk.com/docs/cli) [MCP setup](https://krowk.com/docs/mcp)

**Setup**

## **Two commands.**

1 — install

```
$ curl -fsSL https://krowk.com/install | bash
```

2 — check it landed

```
$ krowk doctor
```

Same two pieces as any other harness: put the binary on the path, then tell the agent when to use it. Codex reads standing instructions from `AGENTS.md`, so the instruction is the whole integration.

## The instruction

Put this in `AGENTS.md` at the repository root. Codex reads it at the start of every task, in the CLI and in the cloud.

AGENTS.md

```
After any visual change, capture it (screenshot if static, a short screen recording if it is an interaction) and publish it with the krowk skill. If the skill is missing or fails, run `krowk help --json`, then `krowk push FILE --title "what changed" --json`, and paste `paste.url` where you report the work.
```

It names a fallback on purpose. There is no skill for the agent to find here, so it reads `krowk help --json` and works from that rather than inventing a flag.

## Codex cloud

A cloud task runs in a container that is thrown away when the task ends, which is exactly where a screenshot goes missing. Install krowk in the environment's setup script so the binary is there before the agent starts:

Environment setup script

```
curl -fsSL https://krowk.com/install | bash

```

Set `KROWK_TOKEN` as an environment secret and every push lands in your workspace with no expiry. Without it the push still works; the link lives 24 hours and the agent prints a claim token.

## What it records

Codex does not yet publish a variable Krowk recognises, so the harness is not detected on its own. Set `KROWK_AGENT=codex` in the environment and the card names it. Set `KROWK_MODEL` and the card names the model as well; a `gpt` prefix is enough for the provider to be recorded as OpenAI. Git supplies the rest — repository, commit, branch, dirty flag.

## MCP, if you would rather

Codex speaks MCP. Add `krowk-mcp` as a stdio server and the agent gets `krowk_push` as a tool instead of a command — same client, same refusals.

\~/.codex/config.toml

```
[mcp_servers.krowk]
command = "krowk-mcp"
```

## **One line in AGENTS.md, and the evidence stops dying with the container.**

No account needed for the first push.

[The CLI reference](https://krowk.com/docs/cli) [See the pricing](https://krowk.com/pricing)