Skip to main content

Index source repositories into a code graph with CLI, MCP, Web API/UI, and AI analysis workflows

Project description

codecontext (Python)

codecontext indexes source repositories into a SQLite-backed code graph and exposes:

  • CLI workflows (index, query, stats, docs, ai, web, mcp)
  • MCP-compatible tool server (stdio via mcp, HTTP via web)
  • Web API/UI for graph/stats/tree exploration

This repository is now Python-first and uses uv for environment and command execution.

Dependency management is defined in pyproject.toml and locked in uv.lock.

Requirements

  • Python 3.12+
  • uv

Quick Start

uv sync --all-extras
uv run python -m codecontext -version

Common Commands

uv run python -m codecontext index .
uv run python -m codecontext stats
uv run python -m codecontext query entity Parse

uv run python -m codecontext docs -output docs.md
LLM_PROVIDER=mock uv run python -m codecontext docs -ai -output ai-docs.md

LLM_PROVIDER=mock uv run python -m codecontext ai query "what does this repo do"
uv run python -m codecontext web 8080  # Web UI + API + HTTP MCP at /mcp
uv run python -m codecontext mcp       # MCP stdio for CLI/editor integrations

When running web, all HTTP surfaces share one port:

  • UI: GET /
  • Web API: GET /api/*
  • MCP HTTP: POST /mcp

LLM Providers

Supported providers:

  • ollama (default)
  • openai
  • azure
  • mock (useful for local tests)

Environment variables:

# Provider selection
export LLM_PROVIDER=ollama
export LLM_MODEL=llama2

# Common settings
export LLM_TEMPERATURE=0.7
export LLM_MAX_TOKENS=2000
export LLM_TIMEOUT_SECONDS=30

# Ollama
export OLLAMA_BASE_URL=http://localhost:11434

# OpenAI
export OPENAI_API_KEY=...
export OPENAI_MODEL=gpt-4o-mini

# Azure OpenAI
export AZURE_OPENAI_ENDPOINT=...
export AZURE_OPENAI_KEY=...
export AZURE_OPENAI_DEPLOYMENT=...
export AZURE_OPENAI_API_VERSION=2024-02-15-preview

Development

uv run pytest -q
uv run pytest -q tests/test_web_api.py tests/test_mcp_tools.py

Cross-Platform Development (Linux + Windows)

Use this quick checklist to ensure the project is installable and usable on both platforms:

  1. Sync and run tests:
uv sync --all-extras
uv run pytest -q
  1. Build distributables and verify local install:
uv build
python -m pip install dist/*.whl
codecontext -version
  1. Validate core command paths:
codecontext index .
codecontext stats
codecontext web 8080

Backend note:

  • Default backend: cogdb (cross-platform, works on Windows, Linux, and macOS)
  • Alternative backend: sqlite (use -backend sqlite to switch)

CI enforces this on both Linux and Windows via .github/workflows/test-cli.yml.

Publish Public Package (PyPI)

This repository publishes Python packages through GitHub Actions with:

  • Primary path: .github/workflows/release.yml (builds, creates release, uploads artifacts, and publishes)
    • all versions (stable and prerelease) publish to PyPI
  • Fallback path: .github/workflows/publish-pypi.yml (auto on release event or manual run by tag)

One-time setup

  1. Create project on PyPI:

    • Create an account on PyPI.
    • Create a project named ossr-codecontext.
  2. Configure Trusted Publishing on PyPI:

    • Publisher type: GitHub
    • Repository: your org/user + repo name
    • Workflow: release.yml
    • Environment: leave empty unless you use one
  3. Ensure the package metadata in pyproject.toml is public-ready:

    • name, version, description, readme, requires-python, authors
    • add license, classifiers, urls if needed

Package naming note:

  • PyPI distribution name: ossr-codecontext
  • CLI command: codecontext
  • Python import package: codecontext

Release flow

  1. Run the Release workflow manually with a version like v1.2.3 or v1.2.3-beta.1.
  2. The workflow builds and attaches artifacts to the GitHub Release.
  3. Publishing occurs in the same release workflow run:
    • stable and prerelease -> PyPI

If release-event automation is blocked by repository token policy, run publish-pypi.yml manually and pass the release tag.

If a release job is re-run for the same version, existing files on PyPI are skipped. In normal use, publish a new version for each release.

Verify install

Install from PyPI:

pip install ossr-codecontext

Notes

  • Default graph database: .codecontext.db
  • Override with -graph /path/to/graph.db
  • Startup helper script: ./codecontext_startup.sh

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

ossr_codecontext-0.0.0a20.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

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

ossr_codecontext-0.0.0a20-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file ossr_codecontext-0.0.0a20.tar.gz.

File metadata

  • Download URL: ossr_codecontext-0.0.0a20.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ossr_codecontext-0.0.0a20.tar.gz
Algorithm Hash digest
SHA256 1b0d9b1ac2a5e2f5fb3d0ffda18144ad41cb0f71a26e14f8d50c68cb786c9c14
MD5 abc5413087b7d8a86b9ea6bf85ee0e2b
BLAKE2b-256 94cc3651fcd918b4269939286950f4a876b6c7fb1b66bdb9a8a1fc1d115bc7fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for ossr_codecontext-0.0.0a20.tar.gz:

Publisher: release.yml on RandomCodeSpace/codecontext

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

File details

Details for the file ossr_codecontext-0.0.0a20-py3-none-any.whl.

File metadata

File hashes

Hashes for ossr_codecontext-0.0.0a20-py3-none-any.whl
Algorithm Hash digest
SHA256 cd7b7232b27294d6dfd5437362f2eddbd14521eabe8dcca70931230be7f25ad8
MD5 1af9bbb81180b8b29483f2a534876e6d
BLAKE2b-256 db1471d8e53197def1acc1c0fa8ff74539f0c44a9c9dc24a964415c14954b178

See more details on using hashes here.

Provenance

The following attestation bundles were made for ossr_codecontext-0.0.0a20-py3-none-any.whl:

Publisher: release.yml on RandomCodeSpace/codecontext

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