Skip to main content

Hippos code repository indexing, navigation, and structure analysis toolkit

Project description

Hippos

中文文档

Hippos is a code repository indexing, navigation, and structure-analysis toolkit. It turns a repository into LLM-friendly artifacts: source signatures, repository trees, a unified code index, structure prompts, navigation snippets, snapshots, diffs, statistics, and an interactive HTML visualization.

The public identity is hippos end to end. Any remaining hippocampus names in early refactor builds are migration-only details, not stable API names for new integrations.

Features

  • Repository code maps for fast human and LLM onboarding.
  • Source signature extraction across supported languages through tree-sitter.
  • Unified Hippos index with files, modules, tags, and dependency-oriented summaries.
  • Structure prompt rendering in map, deep, or automatic profiles.
  • Incremental refresh that reuses caches and updates only changed work where possible.
  • Search, expand, overview, stats, snapshot, and diff commands for codebase navigation.
  • Interactive HTML visualization generated from the Hippos index.
  • Optional RepoMap-backed ranking and trimming for context selection.
  • Optional architecture metrics and review workflows when paired with architec.
  • MCP navigation tools, including hippos.navigate, for agent integrations.

Requirements

  • Python 3.10 or newer.
  • Git only for source installs.
  • Node.js 18 or newer only when using the npm launcher.
  • LLM provider configuration for commands that run the full index pipeline.

Naming and Migration

The full refactor target is:

  • Python distribution: seemseam-hippos
  • npm package: hippos
  • CLI command: hippos
  • Python import package: hippos
  • Project output directory: .hippos/
  • User config directory: ~/.hippos/
  • Main index filename: hippos-index.json
  • MCP tool namespace: hippos.*

Legacy names such as hippocampus, .hippocampus/, ~/.hippocampus/, and hippocampus-index.json should only be kept as a short migration window. During that window, Hippos may read or migrate old state, but new documentation, examples, and integrations should use the hippos names.

Install

Python package install

Use this after the PyPI package is published:

python3 -m pip install seemseam-hippos
hippos --help

The Python dependency is published on PyPI as seemseam-llmgateway; the import module remains llmgateway.

The PyPI project name may also appear as seemseam_hippos in release tooling; Python packaging normalizes underscores and hyphens to the same project name.

npm global install

npm distribution is deferred. When the npm launcher is published later, it will install the Python package from PyPI and expose the same hippos command:

npm install -g hippos
hippos --help

Useful npm launcher overrides after npm publication:

HIPPOS_NPM_PYTHON=python3.11 hippos --help
HIPPOS_NPM_CACHE_DIR=/tmp/hippos-cache hippos .
HIPPOS_NPM_PIP_SPEC='seemseam-hippos==0.1.7' hippos .
HIPPOS_NPM_LLMGATEWAY_PIP_SPEC='seemseam-llmgateway>=0.1.2' hippos .

Source install

This works for local development and current pre-release testing:

git clone https://github.com/SeemSeam/hippos.git
cd hippos
python3 -m pip install -e '.[dev,repomap]'
hippos --help

./install.sh also installs the Python llmgateway runtime from PyPI. Override the default with LLMGATEWAY_PIP_SPEC='seemseam-llmgateway>=0.1.2' when needed.

For guided local configuration, run:

./install.sh

Quick Start

Generate the standard Hippos artifacts for the current repository:

hippos .

Analyze another repository:

hippos /path/to/repo

Refresh an existing Hippos bundle:

hippos update

Force a full refresh:

hippos refresh .

Generate only the local index phases without LLM calls:

hippos index --no-llm .

Common Commands

# Create project config and output directories
hippos init .

# Extract code signatures
hippos sig-extract .

# Generate repository tree data
hippos tree .

# Build the unified index
hippos index .

# Render structure prompts
hippos structure-prompt --profile map .
hippos structure-prompt --profile deep .
hippos structure-prompt-all .

# Inspect and navigate the index
hippos overview .
hippos search --pattern auth .
hippos search --tags api --tags config .
hippos expand src/your_package/cli .

# Visualize
hippos viz --open .

# Save and compare history
hippos snapshot save -m "baseline" .
hippos snapshot list .
hippos snapshot show latest .
hippos diff latest~1 latest .
hippos stats --history .

Output Files

The target output directory is .hippos/ in the analyzed repository. During the migration window, builds may still read or migrate legacy .hippocampus/ state.

  • hippos-index.json: unified repository index.
  • code-signatures.json: extracted symbols and file signatures.
  • tree.json: normalized repository tree.
  • structure-prompt.md: default structure prompt.
  • structure-prompt-map.md: compact map-oriented structure prompt.
  • structure-prompt-deep.md: deeper implementation-oriented structure prompt.
  • hippos-viz.html: interactive visualization.
  • architect-metrics.json: architecture metrics when architec integration is available.
  • snapshots/: archived index snapshots for snapshot, diff, and stats workflows.

LLM Configuration

Hippos uses llmgateway for provider access. Keep API keys out of the repository and configure them in your user environment or local config files.

Typical config locations:

  • ~/.llmgateway/config.yaml: providers, routing, API keys, concurrency.
  • ~/.hippos/config.yaml: Hippos task-to-model-tier mapping.
  • .hippos/config.yaml: optional project-local override.

Migration builds may read ~/.hippocampus/config.yaml or .hippocampus/config.yaml and should guide users to move them to the new locations.

Minimal example:

# ~/.llmgateway/config.yaml
version: 1
settings:
  strong_model: gpt-4.1
  weak_model: gpt-4.1-mini
  max_concurrent: 30
provider:
  provider_type: openai
  api_key: ${OPENAI_API_KEY}
# ~/.hippos/config.yaml
version: 1
tasks:
  phase_1:
    tier: weak
  phase_2a:
    tier: strong
  phase_3b:
    tier: strong
structure_prompt_profile: map

Python API

The target Python import package is hippos:

from hippos import build_tree, extract_signatures, generate_structure_prompt

extract_signatures("/path/to/repo")
build_tree("/path/to/repo")
generate_structure_prompt("/path/to/repo", profile="map")

Early migration builds may still expose the legacy hippocampus package while the package directory rename is in progress. Do not use that name for new long-lived integrations.

Development

python3 -m pip install -e '.[dev,repomap]'
PYTHONPATH=src pytest -q
npm run test
npm pack --dry-run

Keep these versions synchronized for release work:

  • package.json
  • pyproject.toml
  • src/hippos/__init__.py

PyPI Trusted Publishing is configured for repository SeemSeam/hippos, workflow .github/workflows/release.yml, and environment pypi.

See NPM_RELEASE.md for npm launcher release notes.

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seemseam_hippos-0.1.7.tar.gz (220.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seemseam_hippos-0.1.7-py3-none-any.whl (246.0 kB view details)

Uploaded Python 3

File details

Details for the file seemseam_hippos-0.1.7.tar.gz.

File metadata

  • Download URL: seemseam_hippos-0.1.7.tar.gz
  • Upload date:
  • Size: 220.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for seemseam_hippos-0.1.7.tar.gz
Algorithm Hash digest
SHA256 5df07db095d7be945fe50add4b3f9813c4ab5c248eb1f053c787e7cc56665473
MD5 cb7739f951ae893649ec0aa325614331
BLAKE2b-256 428faedd29c9667ed8c3087042a580e5055a2d80c4d818a0071aba9414dc7613

See more details on using hashes here.

Provenance

The following attestation bundles were made for seemseam_hippos-0.1.7.tar.gz:

Publisher: release.yml on SeemSeam/hippos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seemseam_hippos-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: seemseam_hippos-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 246.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for seemseam_hippos-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d432b68be52bdd36129cf6ca9b9b61b91561ff88870b11f26eea97d8bcb8c47a
MD5 294236822c89fd77b74ad6c92c6e94c4
BLAKE2b-256 dbf8fa697e85694428cd1994396019abf45b3e99f24daee4a1565e950c9cf66e

See more details on using hashes here.

Provenance

The following attestation bundles were made for seemseam_hippos-0.1.7-py3-none-any.whl:

Publisher: release.yml on SeemSeam/hippos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page