open source · self-hosted · terminal-native

CARDMAN

Terminal UI Card Collection Manager

install
# download latest tagged binary (linux amd64) $ VERSION=v0.2.0 $ curl -L "https://github.com/laiambryant/tui-cardman/releases/download/${VERSION}/cardman_${VERSION}_linux-amd64.tar.gz" | tar xz $ sudo mv cardman /usr/local/bin/ # initialise and launch $ cardman migrate && cardman import-full $ cardman serve ✓ cardman is running
▼ scroll
// 01
How It Works

Fully self-hosted card collection manager that runs entirely in your terminal. No accounts, no cloud, no browser required — just a single binary and a SQLite file. Pick the mode that fits your setup.

Local Mode
single user

Run cardman directly on your machine. Your collection lives in a local cardman.db SQLite file. No network, no dependencies.

local mode
$ cardman serve
  • Single-user setup, zero config
  • Keybindings stored locally
  • Works completely offline
  • Data in a portable .db file
SSH Server Mode
multi user

Deploy cardman as a shared SSH server. Each user authenticates with their own username and gets an isolated collection — all on the same host.

ssh mode
# on the server $ cardman serve-ssh # from any client $ ssh -p 2222 username@your-server
  • Multiple independent users
  • Per-user keybinding config in DB
  • Docker-ready for easy deployment
  • Ed25519 host key authentication
.env configuration
DATABASE_DSN = cardman.db # path to sqlite file LOG_LEVEL = INFO # DEBUG | INFO | WARN | ERROR SSH_MODE = false # true to enable ssh server PORT = 2222 # ssh listen port SSH_HOST_KEY = ./host_key # ed25519 key path API_KEY = # tcgdex api key (optional)
// 02
Collection

Your collection is the foundation of cardman. Track every card you own, see how complete each set is, monitor its total market value over time, and export in formats your other tools understand.

Features
  • Track owned cards with per-card quantities
  • Browse by set with completion percentage
  • TCGPlayer & CardMarket price snapshots
  • Total collection value with history chart
  • Search across the full card database
  • Full and incremental import from TCGDex API
  • Import specific sets by ID
Export & Import
  • CSV  —  spreadsheet-compatible
  • Text  —  human-readable table
  • PTCGO  —  Pokemon TCG Online import
import commands
$ cardman import-full $ cardman import-updates $ cardman import-sets base1
// 03
Lists

Flexible card groupings you define yourself. Use them as wishlists, trade binders, want lists, or any custom grouping. Each list is named, optionally described, and tagged with a color label so you can tell them apart at a glance.

What You Can Do
  • Create unlimited named lists
  • Assign a color label to each list
  • Add cards with individual quantities
  • Update or remove cards in bulk
  • Delete entire lists when done
  • See which lists contain a given card
Example Use Cases
  • Wishlist — cards you want to acquire
  • Trade binder — cards available to trade
  • Set target — cards missing from a set
  • Duplicates — extras to sell or trade away
  • Gift list — cards you're buying for others
// 04
Decks

Construct and validate 60-card Pokemon TCG decks without leaving your terminal. Add cards, adjust quantities, and get immediate validation feedback before you sleeve up.

Deck Features
  • Create multiple named decks per format
  • Add any card from your imported database
  • Adjust card counts with live feedback
  • Real-time deck validation on save
  • Rename or delete decks at any time
Validation rules enforced:

— Deck must contain exactly 60 cards
— No more than 4 copies of any non-energy card
— Basic energy cards are exempt from the copy limit
Deck Workflow
deck builder
# create a new deck name : Charizard Ex format : Standard # add cards 4x Charizard ex 4x Pidgeot ex 2x Moltres ex ... # validate on save ✓ 60 cards ✓ no copy limit violations ✓ deck is legal