Feathr-cli is a complimentary tool. The goal is to provide a simple and efficient invoice generation experience.
Working with multiple clients in parallel, I was exhausted creating the invoices for each of them monthly, weekly, or by providing one-time service. I have tried no one or two tools, which suppose to ease this process, and I fall in love with one - slimvoice.co.
Same as feathr-cli
, Slimvoice it is just a side project, but EOL date of this service is 1 April 2023. I did another try to find a tool which can replace slimvoice with a same easy of use, unfortunately was not able to find it. Some of them have a bunch of features which is not needed by the essence of my work, and some of them are slow or complex. So I have decided to create workflows in CLI way, which continues my work, so I easy can integrate send of invoices into my workflow. Hope you can as well.
Getting started with feathr-cli
is an introduction to the tool, from installation and basic usage.
To install the feathr-cli
binary for Go, you can download the appropriate binary for your operating system from the project's GitHub Releases page.
Once you have downloaded the binary, you can add it to your system's PATH
environment variable to make it easily accessible from the command line.
Here is example, how you can install quickly Feathr in the /usr/local/bin
~ $ export RELEASE_VERSION="0.0.1-alpha"
~ $ curl -L -o "/tmp/feathr-cli_${RELEASE_VERSION}_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m).tar.gz" "https://github.com/idestis/feathr-cli/releases/download/v${RELEASE_VERSION}/feathr-cli_${RELEASE_VERSION}_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m).tar.gz"
~ $ tar -xvf "/tmp/feathr-cli_${RELEASE_VERSION}_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m).tar.gz" -C /usr/local/bin feathr-cli
x feathr-cli
~ $ feathr-cli
Feathr is a Command Line Interface (CLI) tool designed to help users generate and send invoices to
multiple clients directly from their local machine's terminal.
This tool is developed to provide an efficient and straightforward invoicing solution
for small business owners and freelancers who need to create and manage invoices for their
clients.
Usage:
feathr-cli [command]
Available Commands:
clients Manage the clients in a simple way
completion Generate the autocompletion script for the specified shell
config Manage feather-cli configuration after initial setup
help Help about any command
init Initialization wizard for Feathr
invoices Manage an invoices in a simple way
profile Configure individual user profile
stats A brief overview on user statistic
version Print the version number of Feathr
wipe A simple wipe command to destroy stored data
Flags:
-h, --help help for feathr-cli
Use "feathr-cli [command] --help" for more information about a command.
Alternatively, you can install feathr-cli
using the Go toolchain by running the command go get -u github.com/idestis/feathr-cli
. This will download the latest version of feathr-cli
and install it to your $GOPATH/bin
directory, which you can also add to your system's PATH
environment variable.
Brew tap and formula will be released soon. Stay tunned.
The init
block is the first step in using the feathr-cli
tool. During the init process, you can set behaviour to Generate on Create / Generate on Update feature or fulfill SMTP configuration to allow you send messages from the tool.
To use Gmail in this application, you should use App Password instead of your own password. Please find this article to configure App Password first.
You can always return to SMTP re-configuration using feathr-cli config smtp
command, it will rewrite SMTP config for you.
Every person has their unique payment details, which we refer to as their profile in feathr-cli. To create your profile, simply run feathr-cli profile
and answer a few questions. After that, you can view your profile by running the same command again.
If you need to make changes to any section of your profile, use the command feathr-cli profile [name]
with the relevant block name.
The feathr-cli
have support next profile settings:
- Name: The name used to receive bills, might be "PE John Doe"
- Currency: The default currency desired by individual, during client creation you can set different currency.
- Due: The default due date can be calculated based on the create/sent dates.
- Address: The physical address of the individual associated with the entrepreneur.
- IBAN: The IBAN field is a unique identifier used to represent a bank account and facilitate international money transfers.
- Bank: The multi-line bank details to receive the payment.
To set up a new client, you'll just need to answer a few questions that we'll ask you.
~ $ feathr-cli client new
? What is the client name? (e.g. Alphabet Inc.) Nest Inc.
? What is the client address? 228 Park Ave S Ste 70891 New York, NY, 10003-1502 United States
? Which currency used to bill a client? USD
? What is the client bank details?
? What is the client emails? (starting each on separate line)
[email protected]
[email protected]
Client profile created successfully!
You're now ready to create invoices for your clients, and you have two options to do this:
-
Open the list of clients by running
feathr-cli clients
, select the desired client, and then choose the Add Invoice option. -
Create a new invoice directly by running
feathr-cli invoice create
. You can also skip the client selection step by using the--client-id
flag, which defaults to the first client with an ID of1
.
You'll just need to answer a few questions that we'll ask you
~ $ feathr-cli invoice create --client-id 1
? What is the invoice number? 1
? What service did you provide? [? for help, tab for suggestions] DevOps Consulting
? How many hours did you work? (Qty.) 10
? What is the hourly rate? (Unit Price) 75
? Add another item? [? for help] No
? Any additional notes to invoice?
Invoice #1
Issued: 2023-03-14
Due: 2023-03-21
Description Qty. Price Total
----------- ---- ----- -----
DevOps Consulting 10 75 750
Now you can operate with invoice from the list of invoices feathr-cli invoices
, you can limit the output for specific client using flag --client-id 1
if you have multiple clients, or you can use operation View Invoices from feathr-cli clients
after client selection.
Each invoice will have Send operation after selection, this is the way where we will use the SMTP settings configured to send an invoice to the client emails.
The code is a side project created by a single individual to resolve a personal challenge of quickly sending invoices. The developer chose to embark on this project to solve their own issue, resulting in a codebase designed for a specific purpose. Despite being the work of a single individual, the codebase may still offer users an efficient and effective way to manage their invoicing.
Feathr-cli values its users' privacy and ensures that their data is secure and not shared with any third-party services. The tool does not use the data for any analytical purposes, guaranteeing that users' information remains private and confidential.
Feathr-cli aims to expand its services to include a new feature in the Self-Sovereign Identity (SSI) space, providing users with the ability to send invoices as Verified Credentials. This feature is designed to improve trust and confidence in individual entrepreneurs by allowing them to leverage the benefits of SSI technology. By incorporating this new feature, Feathr hopes to provide a more secure and reliable invoicing experience for the users.