Skip to main content

Indexly

Indexly is a local-first command line tool for indexing, searching, and analyzing files on your own machine.

PyPI Python License

Indexly CLI preview

What Indexly Helps You Do

  • Index local folders quickly
  • Search content using plain text or regex
  • Organize and filter with tags
  • Watch folders and auto-update the index
  • Analyze CSV, JSON, XML, SQLite, and more
  • Compare files and folders
  • Create backups and restore safely

Install

pip (Windows, macOS, Linux)

Requires Python 3.11 or newer.

python -m pip install --upgrade pip
python -m pip install indexly

Verify:

indexly --version

Homebrew (macOS and Linux)

brew tap kimsgent/indexly
brew install indexly

Verify:

indexly --version

Homebrew installs the lightweight Indexly core. Manage optional groups with the brewed executable:

command -v indexly
indexly extras list
indexly extras install documents
indexly extras status

Available groups are documents, analysis, visualization, pdf_export, and backup. Remove a group with indexly extras uninstall <group>. Homebrew extras are installed into a user-owned overlay scoped to the installed Indexly version, Python ABI, and platform architecture, outside the Homebrew Cellar. After brew upgrade indexly, check indexly extras status and reinstall any group that the new version needs.

If command -v indexly resolves to a pip or pyenv installation, target Homebrew explicitly with "$(brew --prefix indexly)/bin/indexly" extras install <group>.

Selected groups share one managed environment so common dependencies resolve to compatible versions. Adding or removing a group rebuilds that environment atomically and may download packages; the previous working environment remains available if resolution fails.

If indexly extras status reports an invalid managed environment, run indexly extras reset, then reinstall the groups you need.

Upgrade-created stale overlays are reported but never loaded. They remain after brew uninstall and can consume substantial space; inspect indexly extras status --json and remove only an obsolete stale environment path after confirming it is no longer needed.

Optional Extras for pip and virtual environments

indexly extras install <group> is also safe for pip installations. If you prefer to manage optional packages directly in a pip installation or virtual environment, use that environment's Python explicitly:

python -m pip install "indexly[documents]"
python -m pip install "indexly[analysis]"
python -m pip install "indexly[visualization]"
python -m pip install "indexly[pdf_export]"
python -m pip install "indexly[backup]"

Install all optional groups:

python -m pip install "indexly[documents,analysis,visualization,pdf_export,backup]"

Do not use generic pip, pip --user, sudo pip, or PYTHONPATH to add dependencies to a Homebrew installation. If pip and Homebrew installations coexist, use command -v indexly to identify the executable you are managing.

The documents group installs Python dependencies for ordinary PDF extraction and OCR integration. OCR additionally requires the separate Tesseract executable; on Homebrew systems, install it with brew install tesseract.

Quick Start

indexly index /path/to/folder
indexly search "invoice"
indexly regex "[A-Z]{3}-\\d{4}"
indexly analyze-csv data.csv --show-summary

Search Cache Behavior

FTS search results are cached in search_cache.json in Indexly's runtime data directory. The FTS database is stored beside it as fts_index.db, and that database keeps a small indexly_state value named search_index_generation.

When indexing changes file content or prunes stale rows under the indexed root, Indexly increments the search index generation. Normal searches include that generation in their cache key, so a search after re-indexing refreshes from the database automatically instead of reusing results from an older index generation. Use --no-cache for a one-off cache bypass, or indexly doctor --clear-cache to remove cached search results.

Developer Environment

git clone https://github.com/kimsgent/project-indexly.git
cd project-indexly
python -m venv .venv

Activate virtual environment:

  • macOS/Linux: source .venv/bin/activate
  • Windows (PowerShell): .venv\Scripts\Activate.ps1

Install project and tools:

python -m pip install --upgrade pip
python -m pip install -e ".[documents,analysis,visualization,pdf_export,backup]"
python -m pip install pytest pytest-cov flake8 black isort mypy build twine

License

MIT. See LICENSE.txt.

Release files for indexly 2.1.7

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

Source distribution (sdist)

Source distribution for indexly 2.1.7
File Size Uploaded
indexly-2.1.7.tar.gz 1.5 MB Details

Built distribution (wheel)

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

Total release size: 3.2 MB

Release files / indexly-2.1.7.tar.gz

Download URL indexly-2.1.7.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
b0c91721fbb1a6fce85f3813d9705da172346b51280fdbfb277924835b4c6f7d
BLAKE2b-256 checksum
How to use checksums
e06639a9aab2d179e72c6ee8f81d8f4833597a40797060b06abc8d44e1ae9e9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / indexly-2.1.7-py3-none-any.whl

Download URL indexly-2.1.7-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
43e876a8e113c55b3a239bcab560da25910f547016cf0b62ff197c58b6816001
BLAKE2b-256 checksum
How to use checksums
6e3a1fd4279d29832e7b140ffd3ba0cc1d0331941b454bf3874b96a7ba7ac414
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

This release

2.1.7 This release

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

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