cardBot

command module
v0.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 3 Imported by: 0

README

cardBot

A CLI tool for camera memory cards.

cardBot screenshot

DISCLAIMER - Built with AI

cardBot was built with the assistance of AI coding tools. This project is an experiment in using large language models to prototype and build an application in Go, a programming language I have minimal experience with. That will likely show throughout the codebase. Use this software at your own risk. There is no warranty — but does anything really have a warranty anymore? It should be the fastest ingestion tool in the West, though. Enjoy.

What cardBot does

  • Detects camera memory cards on macOS
  • Generates an overview of card content (file count, type, dates, equipment data, etc.)
  • Copy modes: all, selects (starred), photos only, videos only, etc
  • Rename files during copy operations
  • Tracks card copy status

Platform Support

Platform Status Notes
macOS Uh huh WIP
Linux I heard it works Untested
Windows Ugh Someday, Maybe

Recommended minimum: macOS 10.13 High Sierra (according to the clankers)

cardBot's Codebase

  • ~7 MB installed binary (single static executable, no dependencies)
  • ~8,200 lines of Go source across 17 packages
  • ~7,800 lines of tests — roughly 1:1 coverage ratio

Installation

The easy install:

curl -fsSL https://raw.githubusercontent.com/wdphoto/cardBot/main/scripts/install.sh | sh

Usage

Start cardBot:

cardbot

Quit cardBot:

Ctrl+C

cardBot will automatically run the setup if no config file is present.

Update to the latest version:

cardbot self-update

To run the setup again:

cardbot --setup

Commands

Key Action
a Copy all files to destination
s Copy selects (starred/picked)
p Copy photos only
v Copy videos only
t Copy today's photos
y Copy yesterday's photos
e Eject card
x Exit current card
i Show card hardware info
\ Cancel copy in progress
? Help

Roadmap

Version Focus Status
0.0.7 Code Refactor Complete
0.0.8 Card copy operations Complete
0.0.10 Release/copy correctness pass In progress
0.0.11 Copyright check and injection Planned

See TODO.md for the current technical backlog and discussion items.

Uninstalling

# Full uninstall (daemon + binary)
sh scripts/uninstall.sh --install-dir ~/bin

# Full uninstall + purge config + logs
sh scripts/uninstall.sh --install-dir ~/bin --purge

License

MIT — see LICENSE.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package analyze handles card content analysis.
Package analyze handles card content analysis.
Package app contains the core cardBot application logic.
Package app contains the core cardBot application logic.
Package cardcopy handles file copying from memory cards to the destination.
Package cardcopy handles file copying from memory cards to the destination.
Package cblog provides simple file-based logging with size-based rotation.
Package cblog provides simple file-based logging with size-based rotation.
Package daemon provides a headless background mode that watches for camera card insertions and invokes a callback (typically launching a terminal window with cardbot).
Package daemon provides a headless background mode that watches for camera card insertions and invokes a callback (typically launching a terminal window with cardbot).
Package dotfile reads and writes .cardbot files on memory cards.
Package dotfile reads and writes .cardbot files on memory cards.
Package fsutil provides small filesystem and formatting helpers shared across packages.
Package fsutil provides small filesystem and formatting helpers shared across packages.
Package term provides shared terminal formatting helpers used across the cardBot CLI: timestamps, ANSI colors, and user-facing error messages.
Package term provides shared terminal formatting helpers used across the cardBot CLI: timestamps, ANSI colors, and user-facing error messages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL