git-iris CLAUDE.md

A project guide for Git-Iris, an AI-assisted tool for exploring and working with code through a terminal interface.

In plain words
What is it for?
Use it when changing Git-Iris's agent, terminal interface, event handling, extensions, or other core project areas.
Why use it?
It gives contributors a shared explanation of the project's design, code layout, and development rules.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/hyperb1iss/git-iris/claude-md
Clone the repo
git clone --depth 1 https://github.com/hyperb1iss/git-iris
Per session 5,458 This file is loaded in full into every session.
When invoked 5,458 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.05458 $0.05458
Opus 5 $0.02729 $0.02729
Sonnet 5 $0.01092 $0.01092
Haiku 4.5 $0.00546 $0.00546

Measured 2d ago against content hash 7762bb620cca, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

git-iris CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 490 lines

How it starts

The opening of the file, as written. The whole thing — 490 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Git-Iris Developer Guide

Note: This is a quick-reference guide for AI assistants. For comprehensive documentation, see:

Architecture Overview

Git-Iris uses an agent-first architecture powered by Iris, an LLM-driven agent built on the Rig framework. Iris dynamically explores codebases using tool calls rather than dumping all context upfront.

Core Principles

  • LLM-First: The LLM makes all intelligent decisions—we avoid deterministic heuristics
  • Tool-Based Context: Iris gathers precisely what she needs via tool calls
  • Unified Interface: Studio provides a single TUI for all capabilities
  • Event-Driven State: Reducer-centric event flow for predictable, testable state management

Project Structure

src/
├── agents/                       # Agent framework (core of Git-Iris)
│   ├── iris.rs                   # Main agent implementation
│   ├── core.rs                   # Backend abstraction (OpenAI/Anthropic/Google)
│   ├── context.rs                # TaskContext and shared agent context
│   ├── provider.rs               # Provider-specific agent builders (caching, models)
│   ├── setup.rs                  # IrisAgentService entry point
│   ├── status.rs                 # Real-time status tracking
│   ├── status_messages.rs        # Witty status messages via fast model
│   ├── debug.rs                  # Debug mode output formatting
│   ├── debug_tool.rs             # Tool wrapper for debug instrumentation
│   ├── output_validator.rs       # JSON recovery for malformed responses
│   ├── capabilities/             # Task-specific prompts (TOML, 8 total)
│   │   ├── commit.toml           # Commit message generation
│   │   ├── review.toml           # Structured code review (findings, severity)
│   │   ├── pr.toml               # PR description generation
│   │   ├── changelog.toml        # Changelog generation
│   │   ├── release_notes.toml    # Release notes
│   │   ├── chat.toml             # Interactive chat capability
│   │   ├── semantic_blame.toml   # "Why does this code exist?"
│   │   └── verify.toml           # Critic verification pass (internal)
│   └── tools/                    # Tools Iris can use
│       ├── registry.rs           # CORE_TOOLS list + attach_core_tools! macro
│       ├── common.rs             # Shared tool utilities (repo root, schemas)
│       ├── git.rs                # git_diff, git_log, git_status, git_show,
│       │                         # git_changed_files, git_blame, git_repo_info
│       ├── file_read.rs          # File content reading and targeted excerpts
│       ├── code_search.rs        # Pattern searching
│       ├── repo_map.rs           # Ranked codebase orientation map
│       ├── static_analysis.rs    # Direct linter runs (rust/python/js/go)
│       ├── docs.rs               # Project documentation (README, CLAUDE.md)
│       ├── workspace.rs          # Iris's notes and task tracking
│       ├── parallel_analyze.rs   # Concurrent subagent processing
│       └── content_update.rs     # Chat tools that update commit/PR/review
│
├── studio/                       # Iris Studio TUI (Ratatui-based)
│   ├── app/                      # Main event loop and app coordination
│   │   ├── mod.rs                # StudioApp lifecycle
│   │   └── agent_tasks.rs        # Agent task spawning and orchestration
│   ├── state/                    # Centralized state for all modes
│   │   ├── mod.rs                # StudioState root and helpers
│   │   ├── chat.rs               # ChatState (messages, streaming, tools)
│   │   └── modes.rs              # ExploreState, CommitState, ReviewState, etc.
│   ├── reducer/                  # Reducer-centric state transitions
│   │   ├── mod.rs                # Top-level reduce() dispatch
│   │   ├── agent.rs              # Agent task events
│   │   ├── content.rs            # Content updates (commit, PR, review)
│   │   ├── git.rs                # Git operation events
│   │   ├── modal.rs              # Modal open/close transitions
│   │   ├── navigation.rs         # Mode switching and panel focus
│   │   ├── settings.rs           # Settings modal state
│   │   └── ui.rs                 # UI-level events (resize, scroll)
│   ├── events.rs                 # StudioEvent, AgentTask, SideEffect enums
│   ├── history.rs                # Audit trail and session persistence
│   ├── layout.rs                 # Layout calculations and panel sizing
│   ├── theme.rs                  # Studio-specific style derivation
│   ├── utils.rs                  # Shared rendering helpers
│   ├── components/               # Reusable UI components
│   │   ├── code_view.rs          # Syntax-highlighted source display
│   │   ├── diff_view.rs          # Unified diff rendering with hunks
│   │   ├── file_tree.rs          # Directory navigation with git status
│   │   ├── message_editor.rs     # Text editing with cursor management
│   │   └── syntax.rs             # Syntect-based syntax highlighting
│   ├── render/                   # Mode-specific rendering
│   │   ├── commit.rs             # Commit mode panels
│   │   ├── explore.rs            # Explore mode panels
│   │   ├── review.rs             # Review mode panels
│   │   ├── pr.rs                 # PR mode panels
│   │   ├── changelog.rs          # Changelog mode panels
│   │   ├── release_notes.rs      # Release notes panels
│   │   ├── chat.rs               # Chat panel with markdown
│   │   └── modals/               # Modal renderers (12 files: help, settings,
│   │                             # search, theme/preset/ref/emoji/commit_count
│   │                             # selectors, chat_modal, confirm, instructions)
│   └── handlers/                 # Input handling
│       ├── mod.rs                # Cross-mode key dispatch and global bindings
│       ├── commit.rs             # Commit mode handlers
│       ├── explore.rs            # Explore mode handlers
│       ├── review.rs             # Review mode handlers
│       ├── pr.rs                 # PR mode handlers
│       ├── changelog.rs          # Changelog mode handlers
│       ├── release_notes.rs      # Release notes mode handlers
│       └── modals/               # Modal input handlers (10 files matching
│                                 # the modal renderers)
│
├── companion/                    # Iris Companion (ambient session awareness)
│   ├── session.rs                # SessionState and FileActivity tracking
│   ├── branch_memory.rs          # Per-branch focus and memory persistence
│   ├── storage.rs                # Persistence backend
│   └── watcher.rs                # Live file watching via notify
│
├── types/                        # Response type definitions
│   ├── commit.rs                 # GeneratedMessage (emoji/title/message/completion)
│   ├── pr.rs                     # MarkdownPullRequest
│   ├── review.rs                 # Review (structured findings + metadata + stats)
│   ├── changelog.rs              # MarkdownChangelog
│   └── release_notes.rs          # MarkdownReleaseNotes
│
├── services/                     # Pure operations (no LLM)
│   └── git_commit.rs             # GitCommitService for git operations
│
├── git/                          # Git2 wrapper module
├── github/                       # GitHub API client (octocrab wrapper)
├── config/                       # Configuration loading helpers
├── cli.rs                        # CLI entry point
├── commands.rs                   # Command handlers
├── common.rs                     # Shared CLI params (CommonParams, --critic)
├── providers.rs                  # LLM provider configuration
├── config.rs                     # Configuration management
├── theme.rs                      # Opaline-backed theme engine (re-exports)
├── github.rs                     # GitHub publishing (PR descriptions, reviews)
├── crypto.rs                     # Process-wide rustls/aws-lc-rs provider pin
├── gitmoji.rs                    # Emoji processing
└── output.rs                     # Git output formatting

Read the full file on GitHub · 490 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 490 lines · 5,458 tokens per session scan A 7762bb620cca

Subscribe to this mod's changes

git-iris CLAUDE.md is an instructions file published in the GitHub repository hyperb1iss/git-iris (41 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 5,458 tokens to every session, about $0.0273 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.