Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: Retired — no longer published. Superseded by the swll package (https://swll.app/).

Footprinter

Tests PyPI

A local context layer for your files, browser history, chats, and email — searchable, user-owned, and served to AI agents through MCP.

⚠️ Install with pipx, not pip. pipx puts the fp command on your PATH automatically; bare pip often doesn't — which leaves you with fp: command not found even though the install succeeded.

pipx install footprinter-cli

Your work lives across filesystems, browsers, inboxes, chat histories, and other tools. Footprinter indexes those sources into a single local store, organizes them into the projects and groupings you define, and serves the result to AI agents through a governed access layer. You control what the agent can see. Everything stays on your machine.

Install

Requires Python 3.11+ and macOS 13+ or Linux. The install script checks your Python version and handles the rest:

curl -fsSL https://raw.githubusercontent.com/harringjohn/footprinter-cli/main/scripts/release/install.sh | bash

Or install with pipx directly:

pipx install footprinter-cli

Either method installs three commands: fp (the CLI and indexing pipeline), fp-mcp (the MCP server for AI agents), and fp-api (the HTTP API). Optional extras add more:

Extra What it adds
[semantic] Semantic search via ChromaDB + ONNX embeddings
[parse] PDF, Word, Excel, PowerPoint content extraction
[full] Both of the above

To install with extras: use the full install script, or pipx install 'footprinter-cli[full]'.

Troubleshooting & alternative install methods

Python version: Stock macOS ships Python 3.9. Install 3.11+ from python.org or brew install python@3.11.

macOS caveats:

  • zsh treats [...] as a glob — quote extras specifiers: 'footprinter-cli[full]'
  • System/Homebrew Python blocks bare pip install (PEP 668) — use pipx or a venv instead

Inside an existing venv: pip install footprinter-cli works as expected.

Full Disk Access: Required for browser history indexing on macOS. fp setup will prompt you when needed.

ChromaDB telemetry: Footprinter sets anonymized_telemetry=False. ChromaDB also removed product telemetry in v1.5.4. See Chroma OSS overview.

Apple Silicon (Rosetta): If fp doctor warns about x86_64 Python on arm64 hardware, recreate the venv with a native interpreter: pipx reinstall footprinter-cli --python /opt/homebrew/bin/python3. This avoids compatibility issues with native-extension dependencies.

Uninstall

fp uninstall                        # remove MCP entry + user data
pipx uninstall footprinter-cli      # remove the package

Quick Start

fp setup     # Configure sources (interactive wizard)
fp ingest    # Index your files
fp status    # See what's indexed
fp search "meeting notes"   # Find things

A few first-run notes:

  • The first ingest is implicitly full; subsequent runs are incremental. If you change exclusions or add directories after the first run, re-run with fp ingest --full so previously skipped files get picked up.
  • With [semantic] or [full], the first ingest downloads ~80MB of ONNX embedding model weights. It's a one-time cost — subsequent ingests are fast.
  • Keep the directories you want indexed outside ~/Downloads — the default exclusion list skips it.

Connect to Claude Desktop

Footprinter includes an MCP server that gives Claude Desktop (or any MCP client) structured access to your indexed data:

fp setup mcp --claude    # Configure MCP for Claude Desktop

After running this, fully quit Claude Desktop (Cmd+Q) and relaunch before the Footprinter tools appear in the conversation tools list. A simple window close isn't enough — the app keeps running in the menu bar.

Once configured, Claude can search your files, browse projects, and find related conversations — through natural language.

What It Indexes

Source What's captured
Local files Path, type, size, timestamps, content hash
Browser history Safari and Chrome — URLs, titles, visit times
Chat exports Claude and ChatGPT conversation exports
Email Subject, sender, recipients, body, timestamps
Documents PDF, Word, Excel, PowerPoint content (with [parse] extra)
Semantic embeddings Conceptual similarity across all sources (with [semantic] extra)

What lands in the database — and when — is controlled by the content storage tier you opt into. By default, Footprinter only indexes metadata; it does not read your file content until you explicitly enable it. See Content Storage for the full breakdown.

CLI Commands

All commands use the fp entry point.

Command Purpose
fp setup Configure sources and integrations
fp ingest Run the indexing pipeline
fp status System health and data counts
fp search Search across all indexed sources
fp connect Manage optional integrations
fp permission Manage access policies (visibility, permissions)
fp view Browse indexed data (files, folders, projects, clients, chats, emails, visits)
fp add Create new entity records or import from CSV
fp update Update existing records by ID — status, assignments, metadata
fp delete Hard-delete a super entity (irreversible)
fp doctor Post-install health check (Python version, platform, FDA, MCP wiring)
fp uninstall Remove Footprinter — MCP entry, user data, package

Run fp <command> --help for full usage.

Architecture

Single-process CLI with optional MCP server. SQLite database. No containers, no cloud, no accounts.

Sources are scanned into SQLite with bidirectional links connecting local files to remote backups via content hash matching. Embeddings are generated at ingest time for semantic search. The MCP server exposes indexed data with two-layer access control (visibility + access) — you decide what agents can see.

Documentation

Contributing

Bug fixes, documentation, and tests welcome. For new features or architectural changes, open an issue first to discuss the approach.

Development setup

git clone https://github.com/harringjohn/footprinter-cli.git
cd footprinter-cli
python3 -m venv venv
./venv/bin/pip install -e ".[dev]"

Running tests

./venv/bin/pytest tests/ -v --tb=short

Code style

  • PEP 8
  • Type hints on function signatures
  • logging over print() in library code

Workflow

  1. Fork the repository
  2. Create a feature branch from main
  3. Write tests (TDD preferred — tests before implementation)
  4. Run the test suite
  5. Submit a PR targeting main

Never commit API keys, tokens, or credentials. Report security vulnerabilities privately — see SECURITY.md.

Pull request expectations

  • Tests must pass
  • No breaking changes to existing CLI commands
  • Fill out the PR template
  • One logical change per PR

All PRs are reviewed by the maintainer. Expect reviews within one week. CI must pass before review begins.

No Contributor License Agreement required. By submitting a PR, you agree your contribution is licensed under the project's MIT License.

Community

License

MIT — see LICENSE.

Metadata

Release files for footprinter-cli 1.1.1

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

Source distribution (sdist)

Source distribution for footprinter-cli 1.1.1
File Size Uploaded
footprinter_cli-1.1.1.tar.gz 342.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for footprinter-cli 1.1.1
File Interpreter ABI Platform
footprinter_cli-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 682.0 kB

Release files / footprinter_cli-1.1.1.tar.gz

Download URL footprinter_cli-1.1.1.tar.gz
Size 342.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1e3bcdb49e6a815fe4b81a97886767cfb618dfdbcfcfcdee783428918a177974
BLAKE2b-256 checksum
How to use checksums
c07a9c55475d9df1eb01c66aca08518d8bc02f33e7588ae42adc748a1e773fee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 21, 2026.

Transparency log

Release files / footprinter_cli-1.1.1-py3-none-any.whl

Download URL footprinter_cli-1.1.1-py3-none-any.whl
Size 339.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3564400e5f74afe131db0977a1a0bbc74d5071732e427f4543653f57a7261aa0
BLAKE2b-256 checksum
How to use checksums
f18e75ea9ce497d75796965052fd0c1782cb4f15582285ce3598212e660025c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release 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