Skip to main content

Project Oracle 🧠

CI PyPI Python License: MIT

Deep project scanner that generates agent-ready context files.

Scan any codebase and produce AGENTS.md, CLAUDE.md, or an Obsidian project note so a coding agent — Claude Code, Cursor, Codex CLI, OpenClaw, Gemini, or Hermes — understands the stack, the real commands, the conventions, and the landmines instantly. Zero dependencies: pure Python 3.11+ standard library, cross-platform (Windows, Linux, macOS).

Unlike a plain generator, Project Oracle also captures human knowledge a scan cannot see. It interviews you for the project's intent and known pitfalls, then embeds both in the generated file — so the agent reads the landmines before it touches code.

Features

  • Every framework, not just the first — a Next.js + Express + Socket.IO + React project lists all four
  • Real, runnable commands — npm scripts captured with their actual shell command, not just the name
  • Environment variable names — read from .env.example; values are never copied and the real .env is never opened
  • Secret-safe git context — remote URLs are credential-masked (https://***@host/...) and de-duplicated
  • 28 languages detected — Python, Java, Kotlin, TypeScript, Go, Rust, PHP, C#, Ruby, and more
  • Build system + test detection — Maven, Gradle, npm/yarn/pnpm/bun, uv/pip, Cargo, Go modules, Composer; Jest, Vitest, pytest, JUnit, and test-file counts
  • Monorepo aware — nested manifests discovered up to 2 levels deep
  • Intent + pitfalls interview — embeds project purpose and known landmines
  • Safe regeneration — an existing file is never clobbered silently: content between <!-- oracle:start/end --> markers is refreshed in place (your edits outside survive), anything else requires --force and keeps a .bak backup
  • Multi-template output — AGENTS.md, CLAUDE.md, Obsidian note, or all in one pass
  • Drift detection — oracle-check re-reads the repo and exits non-zero when the generated context no longer matches it, so CI fails instead of letting a stale AGENTS.md tell agents to run commands that were deleted months ago
  • Cross-platform — pathlib everywhere, no platform-specific code

Install

As a CLI — one command, nothing to clone:

pipx install hermes-project-oracle
# or
uv tool install hermes-project-oracle

Four commands land on your PATH: oracle-scan, oracle-generate, oracle-vault, oracle-check.

As a skill — for Claude Code, Cursor, Codex, Hermes. The zip carries only what the skill needs (SKILL.md, scripts/, references/), no .git/, tests or build artifacts:

git clone https://github.com/iruzen-dono/hermes-project-oracle.git
cd hermes-project-oracle
python package_skill.py          # builds hermes-project-oracle.zip + validates it

# Claude Code / generic SKILL.md agents
unzip hermes-project-oracle.zip -d ~/.claude/skills/

# Hermes Agent
unzip hermes-project-oracle.zip -d ~/.hermes/skills/

On Windows (PowerShell): Expand-Archive hermes-project-oracle.zip -DestinationPath $HOME\.claude\skills\

Quick start

# 1. Scan a project (writes <project>/.oracle/scan-report.json,
#    and adds .oracle/ to the project's .gitignore when missing)
oracle-scan --path /path/to/project --output /path/to/project/.oracle/

# 2. Generate AGENTS.md, embedding the interview answers
oracle-generate \
  --scan .oracle/scan-report.json \
  --template agents-md \
  --output /path/to/project/AGENTS.md \
  --intent-file .oracle/intent.json

# 3. In CI: fail the build when the context has gone stale
oracle-check --path . --agents AGENTS.md

# 4. (Optional) push a note into your Obsidian vault
oracle-vault --scan .oracle/scan-report.json --vault ~/Documents/"Obsidian Vault"

Running from a skill install instead? Prefix with python $SKILL/scripts/ (SKILL=~/.claude/skills/hermes-project-oracle) — the flags are identical.

--output accepts a directory (.oracle/ or .oracle) or an explicit JSON file path. Run any script with --help for all flags.

Scripts

Script Purpose
scripts/oracle_scan.py Deep project scan → JSON report (28 languages, credential-safe)
scripts/oracle_generate.py Report → context files (4 templates + optional intent file)
scripts/oracle_vault.py Push a structured note into an Obsidian vault

Docs

Development

pip install -e ".[dev]"
ruff check .                    # lint (deterministic via ruff.toml)
mypy scripts/ --ignore-missing-imports
pytest tests/ -v                # unit + end-to-end (scan → generate → vault)
pytest tests/ --cov=scripts     # coverage (currently 77%)

The end-to-end test builds a fixture Node project, runs the full pipeline, and asserts the output is safe (no leaked tokens, no env values, no absolute paths) and complete (commands, frameworks, env names, pitfalls).

Contributing

PRs welcome! Keep it cross-platform, add tests, preserve the zero-dependency promise, and never introduce network calls or credential collection.

License

MIT

Metadata

Release files for hermes-project-oracle 2.2.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 hermes-project-oracle 2.2.0
File Size Uploaded Provenance Actions
hermes_project_oracle-2.2.0.tar.gz 68.7 kB Without provenance Details for hermes_project_oracle-2.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hermes-project-oracle 2.2.0
File Interpreter ABI Platform Actions
hermes_project_oracle-2.2.0-py3-none-any.whl Python 3 none any Details for hermes_project_oracle-2.2.0-py3-none-any.whl

Total release size: 125.8 kB

Release files / hermes_project_oracle-2.2.0.tar.gz

Download URL hermes_project_oracle-2.2.0.tar.gz
Size 68.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d4d9ff0c7c213d7e7ce2034b1f709d0776da3913de72c8c04059367cde95c3fa
BLAKE2b-256 checksum
How to use checksums
c7bfd3f9462cf43422ff15587c5240cf184ccbe820a7f45f75cc2d8c75916f24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hermes_project_oracle-2.2.0-py3-none-any.whl

Download URL hermes_project_oracle-2.2.0-py3-none-any.whl
Size 57.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ba509e82fc682315b6b5ec6a1108c7e353494f6e63b5fc911a0bb46998d2908
BLAKE2b-256 checksum
How to use checksums
6f9eebb25225a83c8059eedba47195d86db329d17c4871eacbab08414e2ef3ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for hermes-project-oracle 2.2.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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