scitex-cards — canonical YAML task store with pluggable adapters

scitex-cards keeps your tasks in one validated YAML store (a top-level tasks: list) and renders that single source of truth through pluggable adapters: a mermaid dependency-graph PNG, a read-only React-Flow web board, and a plain task listing. Part of SciTeX.

The store is PostgreSQL on 55432 and there is ONE store identity: an explicit store argument → $SCITEX_CARDS_DB. Nothing else — unset RAISES. There is deliberately no SQLite tier, no project scope and no bundled-example fallback: an unconfigured store is a configuration error, not a cue to invent a board.

Interfaces

Interface

Description

Python API

import scitex_cards as cardsscitex_cards — Python API

CLI

scitex-cards <command>CLI Reference

MCP

AI-agent tools via fastmcp (on the roadmap)

Skills

AI-agent knowledge pages bundled at _skills/scitex-cards/

Quick example

Python API:

import scitex_cards as cards

tasks = cards.load_tasks("tasks.yaml")    # validates id / title / status
mermaid_src = cards.build_mermaid(tasks)  # YAML -> flowchart TB
engine = cards.render(mermaid_src, "tasks.png")
print(f"rendered via {engine}")

CLI:

scitex-cards render-graph -o tasks.png      # YAML -> dependency PNG
scitex-cards list-tasks --json              # resolved tasks, machine-readable
scitex-cards board --port 8051              # read-only web board (needs [web])

Four Freedoms for Research

  1. The freedom to run your research anywhere – your machine, your terms.

  2. The freedom to study how every step works – from raw data to final manuscript.

  3. The freedom to redistribute your workflows, not just your papers.

  4. The freedom to modify any module and share improvements with the community.

AGPL-3.0 – because research infrastructure deserves the same freedoms as the software it runs on.

Indices and tables