Simple Finance CLI
sfcli is a Command-line interface application for personal finance management.
It is a set of commands for managing monetary entries (incomes and expenses) through the terminal.
README em Português Brasileiro
Quick Start
pipx install simple-finance-cli
sfcli add income salary 2500
sfcli add expense rent 800
sfcli add expense groceries 150
sfcli show
sfcli balance
Table of Contents
Installation
pipx
⚠️ Requirements: Python 3.10 or newer, pipx installed.
pipx handles installation and isolated environments.
With pipx installed, simply run:
pipx install simple-finance-cli
And then you're ready to go:
sfcli add e "New Expense" 100
Download a Binary
Skip the build step and grab a pre-built binary:
Choose the archive matching your operating system and you're ready to go.
⚠️ Windows users: if Windows Defender/SmartScreen blocks the executable, you may need to alter file permissions and properties, or disable Windows Defender/SmartScreen.
Repo Cloning
⚠️ Requirement: Python 3.10 or newer
You can install the project following these steps:
- Clone the repository and enter directory:
git clone https://github.com/joao-antonio-la/simple-finance-cli.git
cd simple-finance-cli
- Create a Python virtual environment:
- Windows:
python -m venv .venv
- macOS and Linux:
python3 -m venv .venv
- Activate the venv:
- Windows:
.venv\Scripts\activate
- macOS and Linux:
source .venv/bin/activate
- Install the CLI:
pip install .
- Use the app:
sfcli add e "New Expense" 100
Usage
sfcli currently provides four commands for managing your finances:
sfcli add: Create a new income or expense entry.sfcli show: Display all saved entries.sfcli delete: Delete one or all entries.sfcli balance: Calculate the current balance.
sfcli add
The add command creates and saves a new financial entry.
sfcli add <type> <name> <value> [options]
Positional Arguments
-
type: Determines whether the entry is an income or an expense.
Possible values:"income""inc""i""expense""exp""e"
-
name: The name or label of the entry.
Examples:"Rent""Internet Bill""Weekly Groceries"
-
value: Absolute monetary value.
Use a positive number. sfcli determines whether it is added or subtracted based on type. Examples:6799.9956.4
⚠️ Values with decimal places must be represented by a period ( . ), not a comma ( , ).
Optional Arguments
-
-d | --date: Date of when the entry was received or spent.
Dates should follow the YYYY-MM-DD format. You can also use the following aliases:yesterdaytodaytomorrow
Examples:
--date 2026-03-17 --date 2026-08-05 -d 2026-12-25 -d today
If --date is omitted, sfcli uses the date on the user's system.
For example, if you execute an add command on January 21, 2026,
the entry will be registered with the date "2026-01-21".
-c | --comment: Additional information associated with the entry.
Examples:"10% bonus salary""Emergency groceries since being sick""Remember to pay John back"
Examples
sfcli add income "mama's gift" 50 --comment "random gift from mama"
sfcli add expense dinner 46.99
sfcli add inc salary 1560 --date today --comment "100 bonus"
sfcli add exp rent 600
sfcli add e "quick snack" 5
sfcli add i "found in street" 10 --date "2026-05-23"
sfcli show
The show command displays all saved entries in a formatted table.
By default, sfcli displays a shortened version of each entry's ID.
Use the --full-id or -I flag to display the complete ID.
sfcli show
sfcli show --full-id
sfcli show -I
sfcli delete
This command allows you to erase one or all saved entries.
Delete a specific entry
Provide the entry's ID to delete it:
sfcli delete 13055296-43a1-4ad6-8896-760a169bde5c
Delete all entries
Use "all" to erase all saved entries:
sfcli delete all
sfcli balance
The balance command calculates the total balance by taking both incomes and expenses into account.
sfcli balance
Dependencies
sfcli has the following dependencies:
- rich: Used to display formatted output, such as tables and colored text.
- platformdirs: Used to determine an appropriate location for storing application data.
Tests and Build
sfcli dev environment uses the following libs for testing and building:
- pytest: Used for writing and executing test cases.
- nox: Used for testing multiple Python versions automatically.
Additionally, in the CI workflow, it uses PyInstaller for generating the binary files.
Author Notes
Currently, sfcli has only four commands, but more features are already being planned.
More quality-of-life improvements are also on the way.
Stay tuned for future updates, and if you enjoy the project, consider giving it a star.
- License: MIT License
- Author: João Antônio
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 simple_finance_cli-0.0.1.tar.gz.
File metadata
- Download URL: simple_finance_cli-0.0.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44dddac912e4cd6cc516a96e4b971b6777e89fc27e11c120edf45aceccabc839
|
|
| MD5 |
6ed8ebbcc122931572d2a1b524f4f8e1
|
|
| BLAKE2b-256 |
6a7db1c416a654459bbbf863706bec70b0fe1a03f732651ace9b1296e92f224c
|
Provenance
The following attestation bundles were made for simple_finance_cli-0.0.1.tar.gz:
Publisher:
release.yml on joao-antonio-la/simple-finance-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_finance_cli-0.0.1.tar.gz -
Subject digest:
44dddac912e4cd6cc516a96e4b971b6777e89fc27e11c120edf45aceccabc839 - Sigstore transparency entry: 2455063998
- Sigstore integration time:
-
Permalink:
joao-antonio-la/simple-finance-cli@76be3fa9574d45a7338f5fd5a347b17fc2508c61 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/joao-antonio-la
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@76be3fa9574d45a7338f5fd5a347b17fc2508c61 -
Trigger Event:
push
-
Statement type:
File details
Details for the file simple_finance_cli-0.0.1-py3-none-any.whl.
File metadata
- Download URL: simple_finance_cli-0.0.1-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e923890bef1b9442d94657a3b6facc83c2b74d0cb70756d19a1b9aa502b6039
|
|
| MD5 |
372d492a99951f90317ec96131da1c1f
|
|
| BLAKE2b-256 |
f1880f7ccd9dfa0ee58d02ac485066f220a4379ea5156f1af94eeb66f01161a7
|
Provenance
The following attestation bundles were made for simple_finance_cli-0.0.1-py3-none-any.whl:
Publisher:
release.yml on joao-antonio-la/simple-finance-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_finance_cli-0.0.1-py3-none-any.whl -
Subject digest:
7e923890bef1b9442d94657a3b6facc83c2b74d0cb70756d19a1b9aa502b6039 - Sigstore transparency entry: 2455064417
- Sigstore integration time:
-
Permalink:
joao-antonio-la/simple-finance-cli@76be3fa9574d45a7338f5fd5a347b17fc2508c61 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/joao-antonio-la
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@76be3fa9574d45a7338f5fd5a347b17fc2508c61 -
Trigger Event:
push
-
Statement type: