Skip to main content

DepTime

An API time machine for Python libraries, built for coding agents. When an agent hits ImportError, AttributeError or "unexpected keyword argument" in a fast-moving library, one call to DepTime says what changed, in which release, and what to use instead. Answers are computed from static diffs of every indexed release, not from docs or model memory.

Free, open source (MIT), and local: your code and errors never leave your machine.

TypeError: Client.__init__() got an unexpected keyword argument 'proxies'      (httpx 0.28.1 installed)

→ explain_error
  httpx.Client.__init__ accepted `proxies` up to httpx 0.27.2; it is gone from 0.28.1 onward.
  Deprecated in or before 0.27.2 ("The 'proxies' argument is now deprecated. Use 'proxy' or 'mounts' instead.").
  Use `proxy` or `mounts` instead, or pin httpx<=0.27.2.          issue=param_removed  confidence=high

That output is real. It came from the actual httpx 0.27.2/0.28.1 wheels, and the deprecation text was recovered from httpx's own source code.

Status: pre-alpha (2026-10-17). The pipeline, local mode and plugin work end to end; the public index isn't published yet. See BACKLOG.md.

Install

Requires uv.

# Claude Code (Cursor, Codex, VS Code and Claude Desktop take the same command in their MCP config)
claude mcp add deptime -- uvx deptime mcp

On first launch DepTime downloads its prebuilt index (one file from this repo's GitHub Releases) in the background, then checks for a newer one at most once a day. Set DEPTIME_OFFLINE=1 to never touch the network.

Claude Code users can also install the plugin in integrations/claude-code. It adds a skill and a local hook that suggests DepTime when a Python version-change error appears in a command's output.

Until the first PyPI release, run from a checkout: claude mcp add deptime -- uv run --directory /path/to/deptime deptime mcp.

Tools

Tool Use it when
explain_error(traceback, installed_versions?, pip_freeze?) An import or call into a library just failed
symbol_history(package, path) Before trusting an API you remember
check_symbols(package, version, symbols[{path, kwargs}]) Pre-flight check of the symbols and kwargs you're about to use
diff_versions(package, from_version | date, to_version?, used_symbols?) Upgrading, or "what changed since my training cutoff?"
coverage() What's indexed (53 fast-moving packages: AI/agent stack + libraries with known breaking changes)

Every answer carries evidence and a confidence level. If a package isn't covered, DepTime says so instead of guessing. The contracts are in docs/03-product-spec.md.

CLI

uvx deptime explain --installed httpx==0.28.1 < traceback.txt
uvx deptime history httpx Client.__init__
uvx deptime check httpx 0.28.1 'httpx.Client:proxies,proxy'
uvx deptime diff httpx 0.27.2 0.28.1              # or: diff pydantic 2024-06-01 (since a date)
uvx deptime index status | pull

How it works

  1. Nightly in GitHub Actions: download every selected release of each covered package from PyPI, extract its public API with griffe (static analysis, no code is ever executed), and diff consecutive releases. Results go into a compact SQLite index. Snapshots are cached, so only new releases are analysed.
  2. The index is published as index.sqlite.gz + manifest.json (sha256, schema version) on a rolling index release.
  3. On your machine, deptime mcp verifies and installs that file, then answers every question locally in milliseconds.

The full design is in docs/04-architecture.md and the decisions are in docs/adr/.

Hosting (optional)

Local mode covers coding agents. For web clients that only accept a URL, or for a public demo, run deptime serve (MCP at /mcp, JSON at /v1/*) on Cloud Run (likely free) or Fly.io (about $3–6/month). It has a Dockerfile and fly.toml, plus anonymous rate limits. See docs/05-hosting-and-sustainability.md.

Prior art and credits

  • griffe does the static analysis.
  • since-cutoff diffs your pinned dependencies against a model's training cutoff, locally and on demand. DepTime differs by shipping a prebuilt cross-version index and starting from a traceback.
  • Context7 and Ref serve version-specific docs. DepTime answers symbol-level "when and what replaced it" questions.

Contributing

The most useful contributions are wrong-answer reports, which become benchmark cases. See CONTRIBUTING.md. Development setup:

uv sync && uv run pytest
uv run deptime ingest httpx --versions 0.27.2 0.28.1   # build a small local index from real PyPI wheels

Docs

Research · Ideas & judging · Product spec · Architecture · Hosting & sustainability · Launch & adoption · Risks & spikes · Privacy & security

License

MIT

Metadata

Release files for deptime 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for deptime 0.0.1
File Interpreter ABI Platform
deptime-0.0.1-py3-none-any.whl Python 3 none any Details

Release files / deptime-0.0.1-py3-none-any.whl

Download URL deptime-0.0.1-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4729095b5040a2b8083a8f8f250515f5c8a7a1b2d75c1c315ed636fd4bd9d286
BLAKE2b-256 checksum
How to use checksums
0907d8cfd0a2d3ba8a5b694e1429b067dbc4671a77fca56d65b2d0676bae0bae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for deptime 0.0.1

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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file No provenance

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