[PR #7208] [MERGED] [AI] Experimental CLI tool for Actual #60662

Closed
opened 2026-05-07 02:47:55 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7208
Author: @MatissJanis
Created: 3/15/2026
Status: Merged
Merged: 3/18/2026
Merged by: @MatissJanis

Base: masterHead: claude/actualbudget-api-plugin-0KVGL


📝 Commits (10+)

  • c4de834 [AI] Add @actual-app/cli package
  • b16e5d6 Merge branch 'master' into claude/actualbudget-api-plugin-0KVGL
  • 70b802d Refactor CLI options: replace --quiet with --verbose for improved message control. Update related configurations and tests to reflect this change. Adjust build command in workflow for consistency.
  • 8e2a996 Refactor tests: streamline imports in connection and accounts test files for improved clarity and consistency. Remove dynamic imports in favor of static imports.
  • fd916a9 Enhance package.json: Add exports configuration for module resolution and publish settings. This includes specifying types and default files for better compatibility and clarity in package usage.
  • 843274e Update package.json exports configuration to support environment-specific module resolution. Added 'development' and 'default' entries for improved clarity in file usage.
  • 3ddb403 Enhance CLI functionality: Update configuration loading to support additional search places for config files. Refactor error handling in command options to improve validation and user feedback. Introduce new utility functions for parsing boolean flags and update related commands to utilize these functions. Add comprehensive tests for new utility functions to ensure reliability.
  • 0d7e3d2 Update CLI TypeScript configuration to include Vitest globals and streamline test imports across multiple test files for improved clarity and consistency.
  • c64b7ce Merge branch 'master' into claude/actualbudget-api-plugin-0KVGL
  • 6f1bac2 Update CLI dependencies and build workflow

📊 Changes

48 files changed (+2981 additions, -16 deletions)

View changed files

📝 .github/actions/docs-spelling/expect.txt (+2 -1)
📝 .github/workflows/build.yml (+25 -0)
📝 .github/workflows/publish-nightly-npm-packages.yml (+16 -0)
📝 .github/workflows/publish-npm-packages.yml (+14 -0)
📝 .github/workflows/size-compare.yml (+34 -1)
📝 .gitignore (+7 -0)
📝 lage.config.js (+1 -0)
📝 package.json (+2 -0)
📝 packages/api/app/query.js (+3 -0)
📝 packages/api/package.json (+14 -0)
packages/cli/.gitignore (+7 -0)
packages/cli/README.md (+155 -0)
packages/cli/package.json (+35 -0)
packages/cli/src/commands/accounts.test.ts (+259 -0)
packages/cli/src/commands/accounts.ts (+135 -0)
packages/cli/src/commands/budgets.ts (+135 -0)
packages/cli/src/commands/categories.ts (+75 -0)
packages/cli/src/commands/category-groups.ts (+73 -0)
packages/cli/src/commands/payees.ts (+95 -0)
packages/cli/src/commands/query.ts (+93 -0)

...and 28 more files

📄 Description

Description

An experimental cli package that allows interacting with your budget. Super useful for AI agents.

n/a

Testing

yarn build:cli
# add ".actualrc.json" with the config (below)
node ./packages/cli/dist/cli.js accounts list
{
  "serverUrl": "https://xxxxx",
  "password": "xxxx",
  "budgetId": "xxxxx",
  "encryptionPassword": "xxxx"
}

Checklist

  • Release notes added (see link above)
  • No obvious regressions in affected areas
  • Self-review has been performed - I understand what each change in the code does and why it is needed

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 26 12.42 MB 0%
loot-core 1 4.83 MB 0%
api 4 4.06 MB → 4.06 MB (+68 B) +0.00%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
26 12.42 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/index.js 3.22 MB 0%
static/js/BackgroundImage.js 119.98 kB 0%
static/js/FormulaEditor.js 846.44 kB 0%
static/js/ReportRouter.js 1021.25 kB 0%
static/js/TransactionList.js 81.29 kB 0%
static/js/ca.js 185.62 kB 0%
static/js/da.js 104.66 kB 0%
static/js/de.js 177.63 kB 0%
static/js/en-GB.js 7.16 kB 0%
static/js/en.js 169.27 kB 0%
static/js/es.js 172.13 kB 0%
static/js/fr.js 177.63 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 168.97 kB 0%
static/js/narrow.js 353.47 kB 0%
static/js/nb-NO.js 154.72 kB 0%
static/js/nl.js 111.58 kB 0%
static/js/pl.js 88.34 kB 0%
static/js/pt-BR.js 180.55 kB 0%
static/js/resize-observer.js 18.03 kB 0%
static/js/th.js 179.94 kB 0%
static/js/theme.js 476.35 kB 0%
static/js/uk.js 213.14 kB 0%
static/js/useTransactionBatchActions.js 4.29 MB 0%
static/js/wide.js 418 B 0%
static/js/workbox-window.prod.es5.js 7.28 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 4.83 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.Dmj0rSrb.js 4.83 MB 0%

api

Total

Files count Total bundle size % Changed
4 4.06 MB → 4.06 MB (+68 B) +0.00%
Changeset
File Δ Size
app/query.js 📈 +68 B (+3.16%) 2.1 kB → 2.17 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
index.js 3.84 MB → 3.84 MB (+68 B) +0.00%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
from-Bl-Hslp4.js 167.73 kB 0%
multipart-parser-BnDysoMr.js 8.1 kB 0%
src-iMkUmuwR.js 43.64 kB 0%

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/7208 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 3/15/2026 **Status:** ✅ Merged **Merged:** 3/18/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `claude/actualbudget-api-plugin-0KVGL` --- ### 📝 Commits (10+) - [`c4de834`](https://github.com/actualbudget/actual/commit/c4de834f9835ef8ae170ed34468b3e1ce2dbb040) [AI] Add @actual-app/cli package - [`b16e5d6`](https://github.com/actualbudget/actual/commit/b16e5d685cfdddfe6136afab2d52e4c849c2ac40) Merge branch 'master' into claude/actualbudget-api-plugin-0KVGL - [`70b802d`](https://github.com/actualbudget/actual/commit/70b802da39eb63b47a0c8003fab95c9e4cee16ab) Refactor CLI options: replace `--quiet` with `--verbose` for improved message control. Update related configurations and tests to reflect this change. Adjust build command in workflow for consistency. - [`8e2a996`](https://github.com/actualbudget/actual/commit/8e2a9966715b74501a762344480d19ec649e3db4) Refactor tests: streamline imports in connection and accounts test files for improved clarity and consistency. Remove dynamic imports in favor of static imports. - [`fd916a9`](https://github.com/actualbudget/actual/commit/fd916a925d265f26550cbc1f6cd17b3a6a7b5fce) Enhance package.json: Add exports configuration for module resolution and publish settings. This includes specifying types and default files for better compatibility and clarity in package usage. - [`843274e`](https://github.com/actualbudget/actual/commit/843274e00ebae37a72539ea04b70d413852641a5) Update package.json exports configuration to support environment-specific module resolution. Added 'development' and 'default' entries for improved clarity in file usage. - [`3ddb403`](https://github.com/actualbudget/actual/commit/3ddb403bfe59b49e14fe9070e752cd21b9b694bd) Enhance CLI functionality: Update configuration loading to support additional search places for config files. Refactor error handling in command options to improve validation and user feedback. Introduce new utility functions for parsing boolean flags and update related commands to utilize these functions. Add comprehensive tests for new utility functions to ensure reliability. - [`0d7e3d2`](https://github.com/actualbudget/actual/commit/0d7e3d20075ee2c72d831c34f77b6aa5a748fef3) Update CLI TypeScript configuration to include Vitest globals and streamline test imports across multiple test files for improved clarity and consistency. - [`c64b7ce`](https://github.com/actualbudget/actual/commit/c64b7ce754724e7f0b123c6019a7ceae11f029c9) Merge branch 'master' into claude/actualbudget-api-plugin-0KVGL - [`6f1bac2`](https://github.com/actualbudget/actual/commit/6f1bac297787f927723682433f83eec345039e1b) Update CLI dependencies and build workflow ### 📊 Changes **48 files changed** (+2981 additions, -16 deletions) <details> <summary>View changed files</summary> 📝 `.github/actions/docs-spelling/expect.txt` (+2 -1) 📝 `.github/workflows/build.yml` (+25 -0) 📝 `.github/workflows/publish-nightly-npm-packages.yml` (+16 -0) 📝 `.github/workflows/publish-npm-packages.yml` (+14 -0) 📝 `.github/workflows/size-compare.yml` (+34 -1) 📝 `.gitignore` (+7 -0) 📝 `lage.config.js` (+1 -0) 📝 `package.json` (+2 -0) 📝 `packages/api/app/query.js` (+3 -0) 📝 `packages/api/package.json` (+14 -0) ➕ `packages/cli/.gitignore` (+7 -0) ➕ `packages/cli/README.md` (+155 -0) ➕ `packages/cli/package.json` (+35 -0) ➕ `packages/cli/src/commands/accounts.test.ts` (+259 -0) ➕ `packages/cli/src/commands/accounts.ts` (+135 -0) ➕ `packages/cli/src/commands/budgets.ts` (+135 -0) ➕ `packages/cli/src/commands/categories.ts` (+75 -0) ➕ `packages/cli/src/commands/category-groups.ts` (+73 -0) ➕ `packages/cli/src/commands/payees.ts` (+95 -0) ➕ `packages/cli/src/commands/query.ts` (+93 -0) _...and 28 more files_ </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> ## Description <!-- What does this PR do? Why is it needed? Please give context on the "why?": why do we need this change? What problem is it solving for you?--> An **experimental** cli package that allows interacting with your budget. Super useful for AI agents. ## Related issue(s) <!-- e.g. Fixes #123, Relates to #456 --> n/a ## Testing <!-- What did you test? How can we reproduce the issue you are fixing or how can we test the feature you built? --> ``` yarn build:cli # add ".actualrc.json" with the config (below) node ./packages/cli/dist/cli.js accounts list ``` ``` { "serverUrl": "https://xxxxx", "password": "xxxx", "budgetId": "xxxxx", "encryptionPassword": "xxxx" } ``` ## Checklist - [x] Release notes added (see link above) - [x] No obvious regressions in affected areas - [x] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 26 | 12.42 MB | 0% loot-core | 1 | 4.83 MB | 0% api | 4 | 4.06 MB → 4.06 MB (+68 B) | +0.00% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 26 | 12.42 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 3.22 MB | 0% static/js/BackgroundImage.js | 119.98 kB | 0% static/js/FormulaEditor.js | 846.44 kB | 0% static/js/ReportRouter.js | 1021.25 kB | 0% static/js/TransactionList.js | 81.29 kB | 0% static/js/ca.js | 185.62 kB | 0% static/js/da.js | 104.66 kB | 0% static/js/de.js | 177.63 kB | 0% static/js/en-GB.js | 7.16 kB | 0% static/js/en.js | 169.27 kB | 0% static/js/es.js | 172.13 kB | 0% static/js/fr.js | 177.63 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 168.97 kB | 0% static/js/narrow.js | 353.47 kB | 0% static/js/nb-NO.js | 154.72 kB | 0% static/js/nl.js | 111.58 kB | 0% static/js/pl.js | 88.34 kB | 0% static/js/pt-BR.js | 180.55 kB | 0% static/js/resize-observer.js | 18.03 kB | 0% static/js/th.js | 179.94 kB | 0% static/js/theme.js | 476.35 kB | 0% static/js/uk.js | 213.14 kB | 0% static/js/useTransactionBatchActions.js | 4.29 MB | 0% static/js/wide.js | 418 B | 0% static/js/workbox-window.prod.es5.js | 7.28 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.83 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.Dmj0rSrb.js | 4.83 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 4 | 4.06 MB → 4.06 MB (+68 B) | +0.00% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `app/query.js` | 📈 +68 B (+3.16%) | 2.1 kB → 2.17 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- index.js | 3.84 MB → 3.84 MB (+68 B) | +0.00% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- from-Bl-Hslp4.js | 167.73 kB | 0% multipart-parser-BnDysoMr.js | 8.1 kB | 0% src-iMkUmuwR.js | 43.64 kB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-07 02:47:55 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#60662