A Stream Deck plugin for time tracking and invoicing with Moneybird.
Track time, create invoices, and monitor billable hours directly from your Stream Deck.
The plugin includes three actions:
Time Tracker
- Start and stop a Moneybird time entry
- Real-time elapsed time on the key
- Optional auto-stop timer
- Clear visual key states for idle, active, and error
Invoice Creator
- Create an invoice for a selected customer and period
- Supports month, quarter, and year periods
- Long-press to toggle current vs. previous period
- Optional workflow and hourly rate
Invoice Summary
- Live overview of hours and optional amount for a selected customer
- Auto-refresh every 30 seconds
- Manual refresh on key press
- Elgato Stream Deck
- Moneybird account with API access
- Moneybird personal API token
- Node.js
24.xfor local development
- Download the latest
.streamDeckPluginfrom Releases. - Double-click the downloaded file.
- Stream Deck installs the plugin automatically.
- Download the
.streamDeckPluginfile. - Open Stream Deck.
- Go to Plugins.
- Click
Install Plugin. - Select the downloaded file.
- Sign in to Moneybird.
- Open
Settings->Developers. - Go to
Personal API tokens. - Create a token with at least:
- Sales invoices
- Time entries
- Contacts
- Copy the token.
Time Tracker
- Add
Time Trackerto a key. - Set API token and administration.
- Select project and user.
- Optional: default description, billable flag, auto-stop settings.
Invoice Creator
- Add
Invoice Creatorto a key. - Set API token and administration.
- Select customer/contact.
- Configure hourly rate and period.
- Optional: custom title and workflow.
Invoice Summary
- Add
Invoice Summaryto a key. - Set API token and administration.
- Select customer/contact.
- Configure period and optional hourly rate.
- Optional: custom title.
Time Tracker
- Single press: start/stop timer
- Key shows elapsed time while running
Invoice Creator
- Single press: create invoice for current selection
- Long press (
0.5s): toggle current/previous period - Status messages:
Creating...,Created,No hours,Error
Invoice Summary
- Displays e.g.
Title\nX.Xh = €YYY - Auto-refresh every 30 seconds
- Single press: force refresh
- Clone this repository.
- Install dependencies:
npm install- Run checks:
npm run lint
npm run typecheck
npm run testnpm run watch-> watch build and restart plugin (local development)npm run build-> production buildnpm run package-> package.streamDeckPluginnpm run release-> lint + typecheck + test + build + package
API token does not work
- Verify token permissions.
- Verify token is still active.
- Validate against the Moneybird API directly.
No projects or contacts are shown
- Check internet connection.
- Confirm selected administration.
- Verify records exist and are active in Moneybird.
Invoice creation fails
- Verify there are billable entries in the selected period.
- Verify workflow exists (if configured).
- Confirm contact can be invoiced.
- Keep your API token private.
- Do not commit local settings or secrets.
- Review logs before sharing them externally.
This plugin is an independent community project and is not officially supported by Moneybird B.V.
- Not an official Moneybird product
- Moneybird is a registered trademark of Moneybird B.V.
- Use at your own risk
MIT. See LICENSE.
- Open an issue: GitHub Issues
- Stream Deck docs: Elgato Developer Docs
- Moneybird API docs: Moneybird Developer Docs