tart
Live terminal artifacts: dashboards that stay open, keep their own data fresh, and can be found again by name.
uv tool install tartifacts # the command is `tart`
An artifact is three files
spend.json manifest: what runs it, what produces its data, when that data expires
fetch.py writes JSON to tartifacts.data_path()
show.py render(state, console) returns any rich renderable
{
"title": "Cloud spend",
"run": "$TART_PYTHON show.py",
"data": "data/spend.json",
"fetch": "$TART_PYTHON fetch.py",
"stale_after": "4h",
"auto_refresh": true
}
$TART_PYTHON is tart's own interpreter — it already has rich and
tartifacts, so most artifacts need no uv environment of their own: one
~20 MB process instead of a resident uv run supervisor holding open a
second Python. Need more libraries? Any command works there, uv run --with pandas ... included.
from tartifacts import app, widgets
def render(state, console):
return widgets.stack(
widgets.header(f"{len(state['data']['rows'])} rows"),
widgets.trend(state["data"]["daily"], style="green"),
)
app.run(render=render)
render() can return any rich renderable. tartifacts.widgets adds the
few things rich lacks for a live dashboard: a scrolling cursor, sparklines,
height budgeting, key bindings. Use them or don't.
Quick start
tart register path/to/spend.json
tart run spend # from any directory
Registering a manifest trusts it. One that tart finds by scanning needs
tart trust <name> first, and editing either asks again.
CLI
tart list # what's declared, what's live
tart run <name> # launch, fetching first if stale
tart render <name> [--json] # one frame headless, or the numbers as JSON
tart fetch <name> # re-run its data command
tart logs <name> # the last fetch's outcome and output, even from cron
tart cron --sync # standing cron block: auto_refresh artifacts stay fresh unattended
tart restart --all # re-exec live artifacts in place — same pane, new code
tart register <path> # adopt a manifest from anywhere
tart trust <name> # approve a scanned manifest
tart roots add <path> # a workspace to scan
tart --skill # full reference, written for agents
Examples
Eight working artifacts in examples/: local Claude Code
agents, ad spend, newsletters, open issues, battery, Wi-Fi, cron, disk.
Copy one, change the fetch.
Metadata
Release files for tartifacts 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tartifacts-0.4.0.tar.gz | 116.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tartifacts-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 188.4 kB
Release files / tartifacts-0.4.0.tar.gz
| Download URL | tartifacts-0.4.0.tar.gz |
|---|---|
| Size | 116.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb11a5f779daf909c61db85207f0c97e4eae2871d37d7c22e78c89cb02e36b2a
|
|
BLAKE2b-256 checksum How to use checksums |
a8c020fb60721c2f67e62638b5abab792f33e803c3281eee76358f9c077bf740
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Release files / tartifacts-0.4.0-py3-none-any.whl
| Download URL | tartifacts-0.4.0-py3-none-any.whl |
|---|---|
| Size | 72.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b583c4a1a0676dea965808391db9df3eedd91fc2027608e3525cab95248f7a01
|
|
BLAKE2b-256 checksum How to use checksums |
a413ee31b1b22a1d4efcc998b4cb4674f931203e40c334aca265b206ece85dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|