New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

billed

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

billed

Generate professional PDF invoices from your terminal

latest
Source
npmnpm
Version
0.1.1
Version published
Weekly downloads
57
-70.31%
Maintainers
1
Weekly downloads
 
Created
Source

billed.dev

Invoicing can be a pain, especially in terms of to context switching. Third-party applications help massively, but can also be expensive and complex. That's why I built a simple cmd-based invoicing tool that can be created locally, right from terminal!

⚠️ the current version is built for macOS only.

Screenshot 2026-03-21 at 10 43 00 Screenshot 2026-03-21 at 10 42 17

Features

  • Generate professional PDF invoices from the command line.
  • Customize invoice details, including work items, payment terms, and client information.
  • Modern, minimal, and clear design.

Installation

Install the tool globally using npm:

npm install -g billed

Usage

  • Create a new directory and include your logo (.svg or .png).
  • Run any bill command:
bill [command] [input]
  • Locate your invoice at your-directory/output/invoices/invoice-<invoiceNr>.pdf

Commands

Initialization and Actions

CommandDescription
--init-configInitialize a new invoice configuration.
--summaryDisplay a summary of the current invoice.
--createGenerate the invoice PDF.

User Profile Commands

CommandDescription
--user-nameSet the user's name.
--user-emailSet the user's email.
--user-streetSet the user's street address.
--user-citySet the user's city.
--user-postalSet the user's postal code.
--user-countrySet the user's country.
--user-taxIdSet the user's tax ID.
--user-bankSet the user's bank name.
--user-accountSet the user's bank account number.
--user-vatSet the user's VAT rate.
--user-phoneSet the user's phone number.
--user-custom:<key>Set a custom user profile field (e.g., --user-custom:license).

Client Profile Commands

CommandDescription
--client-nameSet the client's name.
--client-emailSet the client's email.
--client-streetSet the client's street address.
--client-citySet the client's city.
--client-postalSet the client's postal code.
--client-countrySet the client's country.
--client-phoneSet the client's phone number.
--client-custom:<key>Set a custom client profile field (e.g., --client-custom:department).

Project Details Commands

CommandDescription
--add-itemAdd a work item to the invoice.
--rmv-itemRemove a work item from the invoice.
--itemsList all work items in the invoice.
--rateSet the hourly rate for a work item.
--hoursSet the number of hours for a work item.
--pay-daysSet the payment due date.
--linkSet the payment link.
--currencySet the currency for the invoice.
--invoiceNrSet the invoice number.

PDF Style Commands

CommandDescription
--logoSet the path to the logo image.
--themeSet the theme for the invoice (e.g., light/dark).

Examples

Initialise a New Invoice Configuration

bill --init-config

Set User Profile Information

bill --user-name "John Doe" --user-email "john@example.com" --user-street "123 Main St"

Set Client Profile Information

bill --client-name "Jane Smith" --client-email "jane@example.com" --client-street "456 Oak Ave"

Add Work Items to the Invoice

bill --add-item "Consultation" --rate 100 --hours 2

Set Invoice Details

bill --invoiceNr "INV-001" --due "2024-12-31" --link "https://example.com/payment" --currency "$" --pay-days 30

Custom Fields

bill --user-custom:license "ABC123" --client-custom:department "Cardiology"

Generate the Invoice

bill --create

Configuration

You can configure your invoice details using a JSON file created in your-directory/contracts/project-contract.json.
Example:

{
  "userProfile": {
    "name": "John Smith",
    "email": "john.smith@example.com",
    "address": {
      "street": "Mainstreet 1",
      "city": "New York",
      "postal": "10001",
      "country": "United States"
    },
    "bank": "Bank of America",
    "account": "123456789",
    "vatRate": 10,
    "vat-number": 445663
  },
  "clientProfile": {
    "name": "Sandra Stone",
    "email": "sandra_stone@example.com",
    "address": {
      "street": "Lukin Street",
      "city": "London",
      "postal": "E1 0AA",
      "country": "United Kingdom"
    },
    "phoneNumber": "+44 192 688 2222"
  },
  "pdfStyle": {
    "theme": {
      "textColor": "#121212",
      "backgroundColor": "#F2F2F2"
    },
    "logoPath": "/Users/alex_daemen/Documents/web_projects/billed/billed-pdf/src/assets/logo/icon-only.svg"
  },
  "projectDetails": {
    "currency": "$",
    "paymentDueDate": "May 20, 2026",
    "paymentLink": "johnsmith.com",
    "workItems": [
      {
        "id": 1,
        "activity": "Consultation",
        "rate": 80,
        "hours": 2
      },
      {
        "id": 2,
        "activity": "Logo Design",
        "rate": 50,
        "hours": 16
      },
      {
        "id": 3,
        "activity": "Logo print-out & delivery",
        "rate": 20,
        "hours": 1
      }
    ],
    "invoiceNumber": 1234567,
    "amount": "$ 1078.00"
  }
}

Save this configuration to a file (e.g., invoice-config.json) and use it with the tool.

Prerequisites

  • Node.js (v16 or higher)
  • npm (or yarn)

License

This project is licensed under the ISC License.

Keywords

invoice

FAQs

Package last updated on 26 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts