Skip to main content

An archival-style black-and-white photograph of a mathematician working at a chalkboard, with a constant Jacobian determinant and three distinct inputs mapping to one output.

Jacobian

Jacobian gives AI agents reliable mathematical tools that produce evidence an independent checker can verify.

CI PyPI npm Supported Python versions MIT license

English · 简体中文

Jacobian is a collection of mathematical operations for AI agents. It runs as an MCP server and is also available as a CLI and Python library. Agents can use it to compute invariants, search for examples or counterexamples, work with solver artifacts, and check formal proofs.

The important part is that Jacobian does not treat every successful computation as a proof.

It exposes focused mathematical operations through a common interface. An agent decides which operations to use and in what order. Results stay visible as typed values or durable artifacts.

A small example

Suppose an agent is testing the claim F is injective.”

A search returns two points, p and q, with the same image. That is a candidate counterexample, not yet a trusted conclusion.

p ≠ q
F(p) - F(q) = 0

An independent checker confirms those relations exactly. The checked collision can then be bound to the original claim and checker identity, producing FALSE · VERIFIED.

If the search finds nothing, times out, is cancelled, or fails, the claim remains UNKNOWN. Absence of a witness is not proof.

The introductory tutorial shows the same boundary in a runnable graph example.

Quickstart

For a guided user-local install:

curl -fsSL https://raw.githubusercontent.com/morluto/jacobian/main/npm/install.sh | sh

The installer resolves an npm release to an exact version, installs the small launcher without lifecycle scripts, configures selected MCP clients, and verifies the local server. The Python package environment is approximately 160 MB; if Python 3.12 is not already available, uv's managed Python adds about 110 MB. Add --defer-runtime to postpone both until first use:

curl -fsSL https://raw.githubusercontent.com/morluto/jacobian/main/npm/install.sh | \
  sh -s -- --client codex --yes --defer-runtime

For a one-off setup without a persistent launcher:

npx jacobian setup

For repeated use:

npm install -g jacobian
jacobian setup
jacobian upgrade
jacobian doctor

For the Python distribution:

python -m pip install jacobian

The launcher supports Claude, Codex, Cursor, Gemini, and OpenCode. It requires Node.js 18 or newer plus Python 3.12 or uv; the guided installer can install its pinned uv release after confirmation. Run jacobian mcp to start the server directly.

The Python distribution contains the mathematical kernel, CLI, and MCP server. The npm package is a sub-100 KB thin launcher and MCP client installer for that same implementation; it is not a separate JavaScript API. The npm tarball has no npm runtime dependencies. The larger download is the local Python mathematical runtime, not a JavaScript dependency tree.

To run the exact code in a clone, follow Configure an agent from a source checkout.

Available mathematics

The installed operations vary with local providers, but the maintained portfolio covers work in:

  • polynomial maps and polynomial algebra;
  • exact linear algebra;
  • graphs, paths, colorings, and isomorphism;
  • SAT and SMT models and proof artifacts;
  • finite and universal algebra;
  • polytopes; and
  • Lean declaration discovery and proof checking.

Some operations require optional local backends. Catalog membership means an operation is installed and invocable; it does not grant verification authority. Read capability://catalog or use math.find to inspect the current environment. Use math.run to invoke a selected operation.

See the domain operation library for the maintained operation portfolio and optional backend setup for provider requirements.

Verification model

Jacobian separates finding evidence from deciding what that evidence proves. Search, generation, evaluation, and computation cannot certify their own conclusions.

Claim → Candidate → Independent check → Record

Only an operator-authorized checker may emit a verified record, bound to the exact claim, candidate, scope, semantics, certificate format, and checker identity. Plugins and search code cannot authorize a checker or change verification policy.

No witness is not proof. A failed search, timeout, cancellation, error, or completed bounded search without a witness leaves the claim UNKNOWN.

A formal claim may still be a poor translation of the informal conjecture. Jacobian records that correspondence and its review status; schema validation does not establish it automatically.

The architecture document describes the complete trust boundary.

Status

Jacobian 0.6.0 is a pre-stable release. Its published package, capability, and artifact contracts describe the current supported surface; ongoing capability research may change experimental contracts between releases.

Documentation

The background to the repository artwork is documented in About the hero image.

Contributing

Jacobian uses Python 3.12, uv, and a small Makefile:

make setup
make test-unit
make check

Read CONTRIBUTING.md before changing code. It documents focused test commands, verification rules, documentation placement, and pull-request expectations.

License

MIT

Download files

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

Source Distribution

jacobian-0.9.0.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

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

jacobian-0.9.0-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file jacobian-0.9.0.tar.gz.

File metadata

  • Download URL: jacobian-0.9.0.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jacobian-0.9.0.tar.gz
Algorithm Hash digest
SHA256 4cdcca68cc9e8a1c0e860f67366ad48eb0f7e30d74958a703f63e26543689fbf
MD5 b05d1fde085f589001e249f451d2b832
BLAKE2b-256 148f36b69aadc340ad1404f18b838fb8b6ce918ce0383e678f92204240afacea

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacobian-0.9.0.tar.gz:

Publisher: release.yml on morluto/jacobian

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

File details

Details for the file jacobian-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: jacobian-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jacobian-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e66fb8721c7621167aaf161b189ac116aee37c8399555f794f8f282934303264
MD5 9aff2eb5f10d6867ec6d669cf1a4336f
BLAKE2b-256 dfda2fd078fc5c16c14c1d61dab438fa1545343cdb1e8b163bec288a4d482002

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacobian-0.9.0-py3-none-any.whl:

Publisher: release.yml on morluto/jacobian

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

Release history Release notifications | RSS feed

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.2

2 files

0.15.1

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

This release

0.9.0 This release

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

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