Ohara is an AI-powered repository intelligence and deep review platform designed for Codex workflows.
V1 implements ohara:review: a repository scanner, semantic markdown context builder,
review template system, ChatGPT browser automation boundary, strict JSON parser, and
filesystem review store.
Ohara does not use the OpenAI API. Its automation layer is designed to reuse authenticated ChatGPT browser sessions and ChatGPT Pro reasoning models through Microsoft @playwright/cli.
uv syncInstall Playwright CLI when you want live ChatGPT automation:
npm install -g @playwright/cli@latest
playwright-cli --helpPortable package entrypoints:
uv run ohara review run --template architecture-review --repo .
uv run ohara-review run --template security-audit --repo .
uv run ohara-review run --template startup-readiness --repo . --dry-runThe repository also includes a local wrapper for the requested skill-style command:
./ohara:review run --template architecture-review --repo . --dry-runPython packaging does not allow : inside console-script executable names, so the wrapper delegates to the local virtualenv ohara-review entrypoint when available.
Ohara includes a reusable skill source at skills/ohara-review/SKILL.md. Keep that directory as the source of truth and symlink it into Claude/Codex skill roots:
skills/ohara-review/scripts/link-skill.sharchitecture-review- architecture boundaries, maintainability, testability, and evolution risksecurity-audit- credentials, dependency risks, authorization boundaries, and hardening gapsstartup-readiness- operational maturity, velocity blockers, quick wins, and production readiness
Each run creates a directory under .ohara/reviews or the configured output directory:
context.md
metadata.json
logs.txt
raw-response.md # browser-backed runs
review.json # validated strict JSON
parse-error.txt # browser-backed runs where JSON extraction/validation failed
The JSON is validated by Pydantic and shaped for Codex workflows: critical issues, technical debt, security risks, scalability issues, architecture feedback, implementation plans, quick wins, Codex actions, and recommended execution order. Each finding includes evidence, confidence, and source paths so follow-up work can stay grounded in the repository context.
Ohara context starts with a repository briefing and guidance summary before file inventory.
It summarizes product purpose, monorepo shape, runtime components, local workflow, CI
signals, shipped versus scaffolded areas, and known tradeoffs. It also compresses
AGENTS.md, CLAUDE.md, README.md, architecture docs, and local specs instead of
dumping them verbatim.
The scanner detects common polyglot repo layouts, including Rust/Cargo, Axum/sqlx/Tokio,
Flutter/Dart, Next.js/React/Tailwind, Terraform, Docker Compose, and GitHub Actions.
Default excludes remove local agent/tool folders, dependency folders, build outputs,
generated Dart files, .sqlx metadata for non-security reviews, and platform assets.
Ohara uses playwright-cli, not Playwright MCP and not the Python Playwright API. The default browser session is:
playwright-cli -s=ohara-chatgpt open https://chatgpt.com/ --persistent --profile=.ohara/playwright-cli-profile --headedSign into ChatGPT once in that headed browser. Later browser-backed runs reuse the named CLI session and persistent profile.
uv run python -m pytest
uv run ruff check .
uv run python -m ohara --helpSee docs/architecture.md, docs/execution-flow.md, docs/templates.md, docs/extensions.md, and docs/configuration.md.