Plot timeline/Gantt-style ranges from CSV files in the terminal
Project description
cplt
Plot CSV files directly in your terminal. Zero GUI. Zero notebooks. Just your CLI.
Why cplt
Most terminal plotting tools handle bars and lines, but not timeline ranges from CSV start/end columns. cplt focuses on that workflow while still covering the common chart types:
timelinefor Gantt-style range plotsbarfor value-count distributionlinefor numeric trends over time or sequencebubblefor presence/absence matricessummarisefor fast column profiling
Get Started In 30 Seconds
pip install cplt
cplt timeline -f data/projects.csv --x planned_start --x planned_end --y project
Install
pip install cplt
# or
pipx install cplt
Standalone binaries are available from the latest GitHub release.
Enable shell completion after install:
cplt --install-completion
What It Looks Like
Tab Completion
Deep completion for --where filters: discover available columns, then see matching values.
Summarise
Quick column profiling — types, nulls, uniques, and smart distribution views at a glance. Low-cardinality columns get percentage breakdowns, numerics get sparkline histograms, and ID columns are detected automatically.
cplt summarise -f data/titanic.csv
Timeline / Gantt
Visualise project schedules as Gantt-style ranges with color-coded status and a "today" marker.
cplt timeline -f data/projects.csv --x start_date --x end_date --y project --color status
Bar Chart
Count values in a column, filter with --where, and label the bars.
cplt bar -f data/titanic.csv -c Embarked
Line Chart
Plot numeric trends over time with --head to limit rows and --title for context.
cplt line -f data/temperatures.csv --x Date --y Temp --head 40
Bubble Matrix
Spot missing data patterns across columns. Rows are labeled, columns are presence/absence dots, colored by group.
cplt bubble -f data/titanic.csv --cols Cabin --cols Age --y Name --head 12
Quick Start
# 1) inspect columns and data quality
cplt summarise -f data/projects.csv
# 2) make your first timeline
cplt timeline -f data/projects.csv --x planned_start --x planned_end --y project
# 3) filter rows
cplt bar -f data/titanic.csv -c Embarked --where "Sex=female"
Output Modes
All plotting and summary commands support --format:
visual(default): full Rich/plotext terminal visualssemantic: ANSI-stripped visual output (useful for LLM UX inspection)compact: token-efficient output for LLM analysis pipelines
Example:
cplt bar -f data/titanic.csv -c Sex --format compact
Docs
- CLI reference:
docs/cli.md - Project docs:
docs/
For Contributors
Developer-only workflows (UX review loop, artifact generation, docs tooling, tests) live in DEVELOPERS.md.
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
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 cplt-0.3.1.tar.gz.
File metadata
- Download URL: cplt-0.3.1.tar.gz
- Upload date:
- Size: 884.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40f892b3dd14836951315bac396438d884f6e366c42b6300469d627be4b807f5
|
|
| MD5 |
085b27c852a1705b2f2aadf1f1c9749c
|
|
| BLAKE2b-256 |
8ea3f939baa902ec6f1f556201d05e57d7545087f80c4df1dc567d626f24ebe0
|
Provenance
The following attestation bundles were made for cplt-0.3.1.tar.gz:
Publisher:
release.yml on Warhorze/cplt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cplt-0.3.1.tar.gz -
Subject digest:
40f892b3dd14836951315bac396438d884f6e366c42b6300469d627be4b807f5 - Sigstore transparency entry: 1107939088
- Sigstore integration time:
-
Permalink:
Warhorze/cplt@e202c1af634f9c7917a7eff1c0d89959979d674b -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Warhorze
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e202c1af634f9c7917a7eff1c0d89959979d674b -
Trigger Event:
push
-
Statement type:
File details
Details for the file cplt-0.3.1-py3-none-any.whl.
File metadata
- Download URL: cplt-0.3.1-py3-none-any.whl
- Upload date:
- Size: 40.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
514e824007aa8ef3d2a336dc94f3c386ca7e968e5a09e877fb6ad2da18d09d9c
|
|
| MD5 |
312c856367441242ffac43334b36dfe9
|
|
| BLAKE2b-256 |
50be62682f5c34401c0b7ae4d9bae45d91829c0de94eccaf8872cdb918046cca
|
Provenance
The following attestation bundles were made for cplt-0.3.1-py3-none-any.whl:
Publisher:
release.yml on Warhorze/cplt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cplt-0.3.1-py3-none-any.whl -
Subject digest:
514e824007aa8ef3d2a336dc94f3c386ca7e968e5a09e877fb6ad2da18d09d9c - Sigstore transparency entry: 1107939091
- Sigstore integration time:
-
Permalink:
Warhorze/cplt@e202c1af634f9c7917a7eff1c0d89959979d674b -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Warhorze
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e202c1af634f9c7917a7eff1c0d89959979d674b -
Trigger Event:
push
-
Statement type: