Beautiful TUI dashboard to monitor packages across PyPI, crates.io, and npm
Project description
secchiOpen Source Package Intelligence |
Secchi lets you explore, compare, monitor, and report on package health, adoption, dependencies, releases, and ecosystem signals from your terminal.
Supported Ecosystems
PyPI Python |
npm JavaScript |
crates.io Rust |
Homebrew Formulae |
Go Modules Go |
CRAN R |
Capabilities
| Type | Capability | What it helps with | Status |
|---|---|---|---|
| Explore | Direct package lookup | Quickly inspect any package from the terminal | ✅ |
| Explore | Interactive dashboard | Explore health, adoption, releases, and dependencies | ✅ |
| Explore | Workspace monitoring | Monitor configured projects and registry sources | ✅ |
| Explore | Cross-registry search | Find packages across supported ecosystems | ✅ |
| Explore | Health and adoption signals | Understand project momentum and maintenance quality | ✅ |
| Explore | Package comparison | Compare multiple packages side by side | ⏳ |
| Report | JSON reports | Use package intelligence in scripts and automation | ✅ |
| Report | Markdown reports | Share readable reports in GitHub, Notion, or documentation | ✅ |
| Report | HTML reports | Generate standalone reports for teams and stakeholders | ✅ |
| Report | Project-wide reports | Combine registry sources for one monitored project | ✅ |
| Automate | Package health checks | Fail workflows when package standards are not met | 🚧 |
| Automate | Workspace policy checks | Evaluate every configured project against policies | ⏳ |
| Automate | GitHub Actions integration | Run Secchi automatically in CI | ⏳ |
| Integrate | Python SDK | Use Secchi from Python applications and scripts | ⏳ |
| Integrate | MCP Server | Let AI assistants query package intelligence | ✅ |
| Explore | Ecosystem adapters | Support PyPI, npm, crates.io, Homebrew, Go Modules, and CRAN | ✅ |
Install
Recommended installation methods:
uv tool install secchi
pipx install secchi
pip install secchi
Quick Start
Scaffold a config file interactively:
secchi init
Launch the dashboard for a project:
secchi -p tuffcli
secchi --project opencode
Explore a package directly, without a configuration file:
secchi show duckdb
secchi dashboard duckdb
secchi search duckdb
secchi report duckdb --format html --output duckdb-report.html
secchi report --config secchi.toml --project duckdb --format html
secchi check duckdb --min-health 80 --require-ci
Run the MCP server for local AI-agent integrations:
secchi mcp
# or
secchi-mcp
The server communicates over standard input/output and exposes tools for package inspection, cross-registry search, configured project reports, and health policy checks. It reuses the same cached intelligence pipeline as the CLI, dashboard, and report commands.
Reports are written to the current directory by default. Use --output to
choose a file path, or --output - to print the report to stdout.
search, show, dashboard, and report use the same data collection and scoring
pipeline. Add --registry with pypi, crates.io, npm, homebrew, go, or
cran when a package name needs an explicit ecosystem.
List available projects:
secchi --list
Config
Secchi looks for config in this order:
--config/-cpath./secchi.toml./.secchi.toml~/.config/secchi/config.toml
Example secchi.toml:
[projects.duckdb]
title = "DuckDB"
description = "DuckDB — embeddable analytical database"
favorite = true
repository = "https://github.com/duckdb/duckdb"
packages = [
{ name = "duckdb", registry = "pypi" },
{ name = "duckdb", registry = "npm" },
]
favorite belongs to the project, which makes workspace navigation clear when
one project contains several registry variants of the same package. Existing
package-level favorite entries remain supported for compatibility.
Optional Spotlight Feed
The dashboard can show a small, curated Spotlight card from Secchi's public feed. Spotlight is cached locally and can be disabled completely when you do not want Secchi to request the feed.
SECCHI_DISABLE_SPOTLIGHT=1 secchi dashboard duckdb
When this variable is set to 1, true, yes, or on, Secchi does not read
or fetch Spotlight data and removes the card from the dashboard.
CLI Options
secchi dashboard [package] Launch the TUI (workspace when omitted)
secchi show <package> Print a concise intelligence summary
secchi search <package> Search packages across supported registries
secchi report <package> --format <type> Generate json, html, or md output
secchi check <package> Evaluate health and CI policies for automation
secchi --project <name> Backwards-compatible project dashboard
secchi --list List projects in config
secchi init Interactively create secchi.toml
Development
Live reload during development:
uv run textual run --dev src/secchi/dev.py -- -p tuffcli
Press ctrl+r to manually reload the dashboard without exiting.
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file secchi-0.1.0.tar.gz.
File metadata
- Download URL: secchi-0.1.0.tar.gz
- Upload date:
- Size: 16.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cbb0cfab64f44cb4cd07adc87160ccd6a8901afa8188644e9dc66e7e63b9650
|
|
| MD5 |
58a4fc1eaab02c3cc1515cdfbb2bdb78
|
|
| BLAKE2b-256 |
4417d84046b504b576338c0f6e05805ad92ba1401747cf2303ba54d468768e59
|
Provenance
The following attestation bundles were made for secchi-0.1.0.tar.gz:
Publisher:
release.yml on kannandreams/secchi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
secchi-0.1.0.tar.gz -
Subject digest:
4cbb0cfab64f44cb4cd07adc87160ccd6a8901afa8188644e9dc66e7e63b9650 - Sigstore transparency entry: 2307167936
- Sigstore integration time:
-
Permalink:
kannandreams/secchi@eefd333347485e86738bae5c45abe68dadb728fa -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kannandreams
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@eefd333347485e86738bae5c45abe68dadb728fa -
Trigger Event:
push
-
Statement type:
File details
Details for the file secchi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: secchi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 83.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73b8ede2bc7e6d9599b2b3c84e5667f695f994dcfd8ee0b8d0b0c79bae33be14
|
|
| MD5 |
80b9269772c0495efb0807dd015d9245
|
|
| BLAKE2b-256 |
7cc23cfd4fe2334eeef7bbff547bdc48096c90bae427f870cf2362ba8caf2e43
|
Provenance
The following attestation bundles were made for secchi-0.1.0-py3-none-any.whl:
Publisher:
release.yml on kannandreams/secchi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
secchi-0.1.0-py3-none-any.whl -
Subject digest:
73b8ede2bc7e6d9599b2b3c84e5667f695f994dcfd8ee0b8d0b0c79bae33be14 - Sigstore transparency entry: 2307168014
- Sigstore integration time:
-
Permalink:
kannandreams/secchi@eefd333347485e86738bae5c45abe68dadb728fa -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kannandreams
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@eefd333347485e86738bae5c45abe68dadb728fa -
Trigger Event:
push
-
Statement type: