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 stats —
flytie statsshows an overview, top-5 rankings, and timeline info for your library at a glance. - Clean up materials —
flytie material mergerewrites all references from one material name to another, eliminating duplicates across your entire version history. - 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 suggestions —
flytie suggestasks 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/:
- Quickstart — install and your first pattern
- Command reference — every command and option
- Shopping list cookbook
- AI suggestions
- Migrating from a notebook
- Export JSON schema
Every command also has built-in help: flytie <command> --help.
Project status
Current release: 0.2.0. 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flytie-0.2.0.tar.gz.
File metadata
- Download URL: flytie-0.2.0.tar.gz
- Upload date:
- Size: 122.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6089703f49c6f5a04a23296da78cdbebf8b869ff80a102283dadbb6295a3e541
|
|
| MD5 |
1bcd344db0354c13f554d3bca2b06ea1
|
|
| BLAKE2b-256 |
9dac53dc76498ec629b6fc106ba34a4ebc91c9c55648b33f2531eaa515432829
|
Provenance
The following attestation bundles were made for flytie-0.2.0.tar.gz:
Publisher:
release.yml on gidde032/flytie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flytie-0.2.0.tar.gz -
Subject digest:
6089703f49c6f5a04a23296da78cdbebf8b869ff80a102283dadbb6295a3e541 - Sigstore transparency entry: 1761518077
- Sigstore integration time:
-
Permalink:
gidde032/flytie@852fe11b1806b417c6c3b2fc171cf512b92641e0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gidde032
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@852fe11b1806b417c6c3b2fc171cf512b92641e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file flytie-0.2.0-py3-none-any.whl.
File metadata
- Download URL: flytie-0.2.0-py3-none-any.whl
- Upload date:
- Size: 72.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a6f50c6d5845e1080df71857dd431f25095faa986459427e168a85623a27e6d
|
|
| MD5 |
2537c91ce1b09aa1519922f82c213c8c
|
|
| BLAKE2b-256 |
2daaf9109a355121fb683ce16cbcaa837b159d0753ce3d87195be4cff41ae5e0
|
Provenance
The following attestation bundles were made for flytie-0.2.0-py3-none-any.whl:
Publisher:
release.yml on gidde032/flytie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flytie-0.2.0-py3-none-any.whl -
Subject digest:
4a6f50c6d5845e1080df71857dd431f25095faa986459427e168a85623a27e6d - Sigstore transparency entry: 1761518946
- Sigstore integration time:
-
Permalink:
gidde032/flytie@852fe11b1806b417c6c3b2fc171cf512b92641e0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gidde032
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@852fe11b1806b417c6c3b2fc171cf512b92641e0 -
Trigger Event:
push
-
Statement type: