You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A fast, type-safe command-line client for Firefly III, built with Swift 6 and swift-argument-parser. Manage accounts and transactions without leaving your terminal. 🚀
✨ Features
Feature
Description
🏦 accounts list
List accounts with balances in an aligned table
🧾 transactions list
List transactions with --limit and --account filters
➕ transactions create
Create a single-split transaction (withdrawal / deposit / transfer)
✏️ transactions update
Update a single-split transaction by ID
⚙️ Flexible config
JSON config file with environment-variable fallback
🔒 Secure by default
Config file permissions hardened to 0600 on load
🧪 Tested
Unit tests with fixture-backed networking mocks
📋 Requirements
Requirement
Version / Detail
🍎 Swift
6.3.3 (see .swift-version)
📦 SwiftPM
Bundled with the Swift toolchain
🌐 Firefly III
Running instance with API access (/api/v1)
🔑 API token
Personal access token from Firefly III (Profile → OAuth)
💻 Platform
macOS or Linux
📦 Installation
1️⃣ Clone the repository
git clone https://github.com/mknnjp/fina-cli.git
cd fina-cli
ID NAME TYPE CURRENCY BALANCE
1 Main Checking asset JPY 125000
2 Cash Wallet asset JPY 12000
🧾 List transactions
fina transactions list --limit 10
fina transactions list --account "Main Checking"
fina transactions list --limit 20 --account 1
Example output:
ID DATE DESCRIPTION TYPE AMOUNT SOURCE DESTINATION
12 2026-09-01 Grocery run withdrawal 5400 Main Checking Supermarket
13 2026-09-02 Salary deposit 300000 Employer Main Checking