Skip to main content

Index your files, emails, browser history, and chats locally. Give AI agents controlled access via MCP.

Project description

Footprinter

Tests

Index your files, conversations, browser history, and more through connector plugins. Search across everything. Give AI assistants structured context via MCP.

Every conversation with an AI assistant starts from zero. It doesn't know what files you've been editing, what you were researching yesterday, or what conversations you had last week. You either paste context in manually or the AI operates blind.

Footprinter fixes that. It scans your work into a local SQLite database, links related items across sources, and exposes the result through MCP — so Claude Desktop, or any MCP-compatible assistant, can search your files, find related conversations, and understand the shape of your work. No copy-pasting. No cloud. Everything stays on your machine.

Install

pip install footprinter-cli

The base install includes the indexing pipeline, CLI, MCP server, HTTP API, and token encryption. Optional extras add more capabilities:

pip install footprinter-cli[full]       # All optional extras (semantic + parse)
pip install footprinter-cli[semantic]   # Semantic search (ChromaDB + ONNX embeddings)
pip install footprinter-cli[parse]      # PDF, Word, Excel, PowerPoint content extraction

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

macOS note: Browser history indexing requires Full Disk Access for your terminal app (System Settings > Privacy & Security > Full Disk Access).

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    # Configure MCP for Claude Desktop

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
Documents PDF, Word, Excel, PowerPoint content (with [parse] extra)
Semantic embeddings Conceptual similarity across all sources (with [semantic] extra)

Additional sources are available through connector plugins.

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 mcp MCP server and access policies
fp api Start the HTTP API server
fp view Browse indexed data (files, folders, projects, clients, chats, emails, visits)
fp upsert Create or update records and assign relationships
fp data Export data, generate templates, or import metadata corrections
fp delete Soft-delete a record
fp vectorize Manage per-record vectorization control

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

Connectors

Connector plugins add external data sources like email, cloud storage, and third-party services. They install alongside Footprinter and register automatically:

pip install footprinter-<name>

First-party and community connectors are in development — check the repository for updates.

Use fp connect list to see available connectors and their status.

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 + permissions) — you decide what agents can see.

Optional Extras

Extra What it adds
[semantic] Semantic search via ChromaDB + ONNX embeddings
[parse] PDF, Word, Excel, PowerPoint content extraction
[full] All optional extras (semantic + parse)

Privacy note: The [semantic] extra installs ChromaDB, which bundles PostHog analytics. ChromaDB collects anonymous usage telemetry by default. Set ANONYMIZED_TELEMETRY=False in your environment to disable it. See ChromaDB telemetry docs for details.

Requirements

  • Python 3.11+
  • macOS or Linux
  • Full Disk Access on macOS (for browser history)

Documentation

Contributing

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

Connector plugins use an internal API that isn't stable yet — we're not accepting connector contributions at this time.

Development setup

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

Running tests

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.

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

footprinter_cli-1.0.0rc1.tar.gz (298.8 kB view details)

Uploaded Source

Built Distribution

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

footprinter_cli-1.0.0rc1-py3-none-any.whl (288.5 kB view details)

Uploaded Python 3

File details

Details for the file footprinter_cli-1.0.0rc1.tar.gz.

File metadata

  • Download URL: footprinter_cli-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 298.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for footprinter_cli-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 d73ec85acfe04ab44f34e46c7739b0cdd999913f3814e22a93276fd207f644c8
MD5 61ace20946b04e5c28546bc54cdf93fc
BLAKE2b-256 c31110be594b22c3cb999ade8c1fbc4bc174c4c8ae2743714b1279e8eea3e224

See more details on using hashes here.

Provenance

The following attestation bundles were made for footprinter_cli-1.0.0rc1.tar.gz:

Publisher: publish.yml on swellcitygroup/footprinter

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

File details

Details for the file footprinter_cli-1.0.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for footprinter_cli-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b8ac28527c3cbc9b8ede8e9c68ef99e45ce5dc3ed6179e1dcb8c76c7280a401
MD5 d25f7e3ed87810ee7d34b7d3478a7f99
BLAKE2b-256 ce582e6b767120e326f676057128571c1a2f82179263003f15252a16100eb9c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for footprinter_cli-1.0.0rc1-py3-none-any.whl:

Publisher: publish.yml on swellcitygroup/footprinter

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