Skip to main content

A CLI for managing, versioning, and exporting fly tying patterns.

Project description

flytie — Fly Tying Recipe Manager

A local-first, AI-augmented command-line tool for managing fly tying patterns. Tag and search your patterns, track every tweak with automatic versioning, generate trip-ready deduplicated shopping lists, export printable pattern cards, and ask Claude for recommendations grounded in your own library.

Everything lives in a single local SQLite file — no account, no server, and no network access unless you explicitly run flytie suggest.

What it does

  • Manage patterns — add, list, view, search, tag, edit, delete, and undelete tying patterns with structured hook sizes, materials, target species, and notes.
  • Version automatically — every edit creates an immutable version; list the history, diff any two versions, and restore an old one. Diffs sort materials alphabetically so reordering alone produces no noise.
  • Library statsflytie stats shows an overview, top-5 rankings, and timeline info for your library at a glance.
  • Clean up materialsflytie material merge rewrites all references from one material name to another, eliminating duplicates across your entire version history. flytie material dedupe scans for likely duplicates using fuzzy matching and walks you through merging them.
  • Plan trips — aggregate materials across any set of patterns into one deduplicated shopping list, excluding what you already own.
  • Export cards — render a styled pattern card to PDF (or HTML).
  • Get suggestionsflytie suggest asks the Anthropic Claude API for flies suited to a species, season, and water, grounded in your library.
  • Stay portable — export and import your whole library as documented JSON.

Install

pip install flytie               # core CLI + styled HTML pattern cards
pip install "flytie[pdf]"        # + PDF export (needs the native libs below)
pip install "flytie[ai]"         # + AI suggestions
pip install "flytie[pdf,ai]"     # everything

The core install includes Jinja2, so flytie export <name> --html produces a styled, printable HTML pattern card on a bare pip install flytie — no extras, no native libraries. Any browser can open and print the resulting file. Choose the [pdf] extra only when you specifically want PDF output.

PDF export native dependencies

The [pdf] extra installs WeasyPrint, which depends on the native Pango / Cairo / GdkPixbuf libraries. These are not Python packages and must be installed at the OS level:

# macOS
brew install pango

# Debian / Ubuntu
sudo apt install libpango-1.0-0 libpangoft2-1.0-0

# Fedora / RHEL
sudo dnf install pango

# Windows
# See https://doc.courtbouillon.org/weasyprint/stable/first_steps.html

If installing the native libraries isn't an option on your platform, stick with the core install and use flytie export <name> --html for printable output.

macOS note: install Pango via Homebrew (brew install pango) before running pip install "flytie[pdf]". On some macOS + Python combinations (notably Python installed via Anaconda when Homebrew's Pango is also present), importing WeasyPrint without a matching native Pango can SIGSEGV the interpreter rather than raise a clean ImportError. Running brew install pango first avoids the binary incompatibility.

60-second example

flytie init
flytie add "Parachute Adams" --hook 14 --tag dry \
  --material "grizzly hackle,hackle,1,feather"
flytie shop --tag dry                              # deduped shopping list
flytie export "Parachute Adams" --out ~/cards/     # printable PDF card

Documentation

Full guides live in docs/:

Every command also has built-in help: flytie <command> --help.

Project status

Current release: 0.2.1. See CHANGELOG.md for the full release history.

Development

pip install -e ".[dev,pdf,ai]"
pre-commit install --hook-type pre-commit --hook-type pre-push
pytest
ruff check src tests
mypy src

See CONTRIBUTING.md for what runs at each hook stage, how to enable pre-commit.ci, and the formatter / coverage / smoke-test contracts.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flytie-0.2.1.tar.gz (132.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flytie-0.2.1-py3-none-any.whl (77.5 kB view details)

Uploaded Python 3

File details

Details for the file flytie-0.2.1.tar.gz.

File metadata

  • Download URL: flytie-0.2.1.tar.gz
  • Upload date:
  • Size: 132.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flytie-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3aa33d0f5da860625db3921f5f5c182321d07ee53395240ce861bc6442a898f5
MD5 bc2ba49f1f22035b89c4eafbea68f22c
BLAKE2b-256 39904b4e8cff72a8d0fae0d2ba82aa5c011896e02158b305d7655950376efee0

See more details on using hashes here.

Provenance

The following attestation bundles were made for flytie-0.2.1.tar.gz:

Publisher: release.yml on gidde032/flytie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flytie-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: flytie-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 77.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flytie-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c7774122d8405c63aed353b096f54c06e0b2a34be3f547801a92e550559f8f3
MD5 f182347a96ea4ade467ec55fb39792a3
BLAKE2b-256 d3073b5b2ddbd79cac0d0588bf3e97a2864a2e4393ec4bacbd755ee388e7b7a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for flytie-0.2.1-py3-none-any.whl:

Publisher: release.yml on gidde032/flytie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page