Skip to main content

Iiwi

Iiwi · /ˈiː.wiː/ "ee-wee"

Turn your AI coding work into clear engineering reports.

CI Release PyPI Python License: MIT PRs Welcome Ask DeepWiki

English | 繁體中文

Iiwi — see what your agents did

You already did the work. Iiwi turns the history left by your coding agents into an update you can review and share.

Iiwi works with OpenCode, Claude Code, and Codex. It finds what you worked on, keeps related work together, and turns it into a Markdown report without making you reread old agent conversations.

  • Works across projects. Iiwi finds your coding-agent sessions wherever you worked.
  • Keeps related work together. Sessions are grouped by repository.
  • You stay in control. Choose and edit what belongs in the final report.
  • Protects sensitive information. Common secret patterns are removed before reports are written.

How it works

  1. Read — Iiwi finds local AI coding history from OpenCode, Claude Code, or Codex.
  2. Review — Keep, edit, reorder, or remove the work that matters.
  3. Generate — Create a Markdown report you can share with your team.

What you get

A reviewed report can look like this:

# Weekly engineering update

## My Project
- Simplified the report workflow and made review easier to use.
- Added Claude Code and Codex session support.
- Fixed documentation checks in CI.

## Blockers
- None

Quick start

Requires Python 3.11+ and git.

  • Reads from: local session history from OpenCode, Claude Code, or Codex.
  • Drafts with: the CLI matching whatever it read — opencode, claude, or codex.
  • No CLI installed? Use --no-llm for a simpler structured report.

Reading Claude Code or Codex history does not need their CLI tools, but drafting does. Set narrator.provider to draft with a different CLI than the one you read from.

pipx install iiwi                 # or: pip install iiwi

iiwi doctor                       # check your setup
iiwi daily                        # review yesterday, today, and blockers
iiwi report --period last-week    # write last week's report

Reports are written under reports/ by default. Add --dry-run to preview a report in the terminal without writing a file.

The interactive menu

Run iiwi with no arguments if you would rather use a menu than remember flags. The main menu gives you Review Activity, Daily Standup, Generate Report, History, Check Setup, and Settings. Use iiwi --help when you want the full command list.

Generate Report lets you choose the report settings, review the sessions Iiwi found, and then generate the report. Review Sessions shows the work grouped by repository so you can quickly keep or exclude what belongs in the update:

Review Sessions   6 / 6 selected │ 252 / 252 msgs
══════════════════════════════════════════════════════
Select sessions to include in the report:

  1. ▾ ████████████  71% ● iiwi   3 / 3    Aug 5 │ 180 msgs
▶      ████░░░░░░░░  24% ● Add the interactive menu Aug 5 │ 60 msgs
       ████░░░░░░░░  24% ● Redact before writing    Aug 5 │ 60 msgs
       ████░░░░░░░░  24% ● Group worktrees          Aug 5 │ 60 msgs
  2. ▸ ████░░░░░░░░  24% ● obsidian-wiki   2 / 2    Aug 4 │ 60 msgs
  3. ▸ █░░░░░░░░░░░   5% ● dotfiles   1 / 1         Aug 3 │ 12 msgs

↑↓ jk │ ←→ hl │ Space Toggle │ p Preview │ e Exclude │ a All │ g Generate │ / Search │ ? Help │ b Back

Daily Standup, or iiwi daily, opens a Yesterday / Today / Blockers review for recent work. History lists reports Iiwi has already written.

Before a report is written, Quick Review lets you keep, edit, reorder, split, or add work items so the final Markdown reflects what you actually want to share. For the full keyboard flow, report modes, and recovery behavior, see the Quick Review guide. For Daily Standup details, see the Daily Standup guide.

Commands

iiwi doctor                       # check your setup
iiwi daily                        # review yesterday, today, and blockers
iiwi scan --period last-week      # preview the sessions Iiwi found
iiwi report --period last-week    # write last week's report
iiwi history                      # list reports already written
iiwi update                       # check PyPI for a newer release
iiwi run                          # use the step-by-step wizard
Flag What it does
--harness claude-code / --harness codex Read sessions from Claude Code or Codex instead of OpenCode
--no-llm Create a structured report without calling a CLI for the narrative
--sanitize Stronger redaction (OpenCode only); removes most work evidence
--dry-run Print the report instead of writing a file
--json Return redacted machine-readable output for supported commands

iiwi --help lists every command and option. Use iiwi run if you prefer a step-by-step wizard; for scripts, call the subcommand you need directly.

Configuration

Settings come from an environment variable first, then the settings file, then the default:

iiwi config init                                          # walk through all
iiwi config set harnesses.opencode.cli.model deepseek-r1  # write one
iiwi config list                                          # show all, with sources
iiwi config unset report.timezone                         # back to the default

Every setting and its environment-variable name is in the configuration guide.

Privacy

Session reading, redaction, and report generation stay on your machine. Iiwi passes the redacted session text to a CLI you already have installed — opencode, claude, or codex — and no API key is required. iiwi update is the command that checks the network for a newer release on PyPI.

Reports can still contain private goals, filenames, commands, and full working paths, so review a report before sharing it. See Privacy and security for the full data flow and current limits.

Documentation

Page What's in it
CLI reference Every command, option, and exit code
Daily Standup Yesterday/Today/Blockers review, refresh, warnings, and output
Quick Review guide Outcome review keys, report modes, recovery, and current exclusions
Configuration Settings file, environment variables, precedence
Privacy and security Data flow, redaction boundary, what reports still contain
Security policy Threat model and how to report a vulnerability
Usage guides Reporting periods, subagents, repository grouping, output handling
Usage statistics How the usage section is built, and its window caveat
Support and limits The per-harness caveat list
Architecture How a report is produced, end to end
Releasing How a release is cut

The name

The ʻiʻiwi is a scarlet Hawaiian honeycreeper whose long curved bill reaches nectar others cannot — which is what this tool does with the sessions your agent left behind. Pronounced the anglicised way, "ee-wee".

Development

git clone https://github.com/mike840609/iiwi.git
cd iiwi
uv sync --locked --extra dev                    # install the project and its dev tools

uv run iiwi                                     # run your working copy
uv run pytest --cov=iiwi --cov-fail-under=80    # tests, with the coverage gate CI enforces
uv run ruff check .                             # lint
uv run pyright                                  # type check

The last three are exactly what CI runs, so a green local run means a green PR.

Name forms

The name is cased by where it appears:

Context Form
Distribution, CLI, URLs, application directories iiwi
Python package and imports iiwi
Prose Iiwi
Environment variables IIWI_ prefix
Error base class IiwiError

License

MIT

Metadata

Release files for iiwi 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iiwi 0.15.0
File Size Uploaded Provenance
iiwi-0.15.0.tar.gz 1.1 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for iiwi 0.15.0
File Interpreter ABI Platform
iiwi-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / iiwi-0.15.0.tar.gz

Download URL iiwi-0.15.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
1f5831e679c3137e98c71446784424e3572d345981eecc804f1fb6f647969577
BLAKE2b-256 checksum
How to use checksums
65cbd3d2af38b5c429881cf154b365b4f4430bb1606eb6199c729ce9a89396eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / iiwi-0.15.0-py3-none-any.whl

Download URL iiwi-0.15.0-py3-none-any.whl
Size 187.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33382a7e5be0156fcd8582d205ee650f0768b55141cdb40bdf04266f6c7d5a1d
BLAKE2b-256 checksum
How to use checksums
0832e56e614d80b4802b327a3824b5e3b02f0430cbf288711af32a6659707419
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Security for iiwi 0.15.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for iiwi-0.15.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page