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": "uv run --with rich --with tartifacts python show.py",
"data": "data/spend.json",
"fetch": "uv run --with tartifacts python fetch.py",
"stale_after": "4h",
"auto_refresh": true
}
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 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.2.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.2.0.tar.gz | 84.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tartifacts-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 138.2 kB
Release files / tartifacts-0.2.0.tar.gz
| Download URL | tartifacts-0.2.0.tar.gz |
|---|---|
| Size | 84.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dfb956f6c59f0eb42d11f7ac754fdc97f7749078bcea8c1235de1364477889d
|
|
BLAKE2b-256 checksum How to use checksums |
f9be15faa5514937edce0e3f3878accaba208fcdc8c3083620cf01768ff9d014
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|
Release files / tartifacts-0.2.0-py3-none-any.whl
| Download URL | tartifacts-0.2.0-py3-none-any.whl |
|---|---|
| Size | 53.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
053d87ff3b7e36e701cd0bc1ee72c4a50fe4a2f7e5adeb310e40799353ae35bf
|
|
BLAKE2b-256 checksum How to use checksums |
68a5c1e8c8bdfac7c7ebd85b65a77f478841a668ebd40e28eb1788e2ce37f9c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|