Connect to Actual Budget
Actual Bench uses a two-step connection flow: first Choose a server, then Choose a budget. This page explains the two connection modes and how to complete each step.
Choose a connection mode
Section titled “Choose a connection mode”At the top of the connection screen you pick one of two modes:
- Direct Actual Server — Actual Bench connects to your Actual Server and runs Actual’s engine directly in your browser. This is the target architecture for new browser-based workflows.
- HTTP API Server — Actual Bench connects through a separate actual-http-api server. This path remains fully supported for deployments and integrations that prefer or require it.
Mode comparison
Section titled “Mode comparison”| Topic | Direct Actual Server mode | HTTP API Server mode |
|---|---|---|
| Connects to | Your Actual Server | An actual-http-api server |
| Where Actual runs | In your browser (a worker) | On the API server |
| Credential entered | Server password | API Key (ACTUAL_API_KEY) |
| Reachability required | Browser → Actual Server | Actual Bench container → actual-http-api |
| Special requirements | CORS and cross-origin isolation | API key and network path to the API |
| Unattended server-side sync | Not supported | Supported when configured |
Both modes support opening multiple budgets, encrypted budgets, and the core workspaces. Some capabilities differ by mode — those differences are called out in the relevant feature guides.
Connect using Direct Actual Server mode
Section titled “Connect using Direct Actual Server mode”- On the connection screen, under Choose a server, select Direct Actual Server.
- In Actual Server URL, enter your Actual Server base URL (for example
https://actual.example.com). - In Server password, enter the password your Actual Server browser clients use.
- Select Load Budgets. Actual Bench opens the Actual engine in your browser and lists the available budgets.
- Continue to Select a budget.
Connect using HTTP API Server mode
Section titled “Connect using HTTP API Server mode”- Under Choose a server, select HTTP API Server.
- In HTTP API Server URL, enter your
actual-http-apibase URL (for examplehttps://budgetapi.example.com). - In API Key, enter the
ACTUAL_API_KEYconfigured on that server. It is kept in memory only. - Select Load Budgets to validate the server and list budgets.
- Continue to Select a budget.
Select a budget
Section titled “Select a budget”After Load Budgets succeeds, the Choose a budget step appears:
- Pick a budget from the list.
- If the budget is end-to-end encrypted, enter its Encryption password. Leave it blank if the budget is not encrypted.
- Select Connect.
Actual Bench opens the budget and takes you to the Budget Overview.
Encrypted budgets
Section titled “Encrypted budgets”For end-to-end encrypted budgets, the Encryption password is required to open the budget and is kept in memory only. It is separate from your Actual Server password or API key.
Saved presets and reconnecting
Section titled “Saved presets and reconnecting”Previously used connections appear on the connection screen so you can reconnect in a single step during the current browser session.
- Only non-secret connection details (such as the server URL and label) are saved, in the browser’s session storage.
- Secrets — the Server password, API Key, and Encryption password — are not saved by default. You re-enter them when reconnecting, unless you opt in to remembering the connection (below).
- Because presets live in session storage, they are cleared when the browser tab is closed.
Remember a server (optional)
Section titled “Remember a server (optional)”To avoid re-typing credentials every session, you can remember a server. Credentials are server-scoped: one saved server (its mode + URL, with its API key or password) opens any of its budgets. The secret is stored encrypted on the server, protected by a passphrase you choose, and after unlocking once you open any budget on that server without re-entering anything.
Remember it while connecting
Section titled “Remember it while connecting”- On the Choose a budget step, tick Remember this server.
- The first time, you’re asked to create a passphrase (at least 8 characters). This passphrase protects every saved server; if a passphrase already exists, unlock it instead.
- Select Connect. The server’s secret is sealed in the metadata database. If the budget is encrypted, its encryption password is remembered separately, tied to that budget.
Reconnect from the Connections list
Section titled “Reconnect from the Connections list”On the connect screen, the Connections list shows everything you can open, grouped by server. Each budget appears once with small state chips:
- open — loaded in this browser session. Click to switch to it instantly — no passphrase needed, since its credentials are still in memory.
- saved — kept in the vault. Click to reconnect after unlocking once; the server credential and the budget’s encryption password (if any) are used automatically, with no re-typing.
A budget that is both shows both chips and opens instantly.
- If the vault is locked, enter your passphrase once to unlock the saved budgets. (Budgets that are already open this session stay clickable without unlocking.)
- Select a budget to open it.
- To open a budget you haven’t opened here yet, use Open another budget under a saved server: the full budget list loads (still without re-entering credentials) so you can pick one.
- Use the ✕ next to a budget to forget just that budget, or the trash icon on a server to forget the whole server (and its remembered budget passwords).
About the passphrase
Section titled “About the passphrase”- It protects the stored secrets and is entered once per session to unlock them. It is not a login for Actual Bench — the app still has no built-in authentication (see the security note above).
- The passphrase and its derived key are never stored on the server — only the encrypted secrets and a salt. Changing the passphrase re-encrypts everything.
- If you forget the passphrase, saved secrets can’t be recovered. Use Forgot passphrase? on the unlock panel to reset the vault — this removes all saved servers and clears the passphrase so you can set a new one. Your budgets and their data are untouched.
See Core Concepts for where remembered secrets live, and the Administration guides for backup implications.
Switch between connections
Section titled “Switch between connections”You can add several connections and switch between them from the top bar. Each connection has its own staged edits and query cache, so switching budgets never mixes local state between them.
Credential handling
Section titled “Credential handling”- Server passwords, API keys, and encryption passwords are held in memory only. Refreshing or reopening the tab requires reconnecting.
- Saved presets contain non-secret details only.
- Actual Bench’s server-side metadata database does not store Actual credentials.
See Core Concepts for the full picture of where data lives.
Troubleshooting
Section titled “Troubleshooting”- Budgets won’t load in Direct mode — verify the browser can reach the Actual Server URL over HTTPS and that CORS / cross-origin isolation are satisfied (or use a same-origin reverse proxy).
- Budgets won’t load in HTTP API mode — verify the HTTP API Server URL is correct, the API
Key matches
ACTUAL_API_KEY, and the Actual Bench container can reach the API server. If the API runs in another container, remember thatlocalhostrefers to the Actual Bench container itself. - Only HTTP API Server mode is shown — Direct mode is disabled via
DIRECT_BROWSER_API=0/NEXT_PUBLIC_DIRECT_BROWSER_API=0. - Budget won’t open — for encrypted budgets, confirm the Encryption password.
The Help → Troubleshooting guide covers connection problems in more depth.
Next step
Section titled “Next step”Read Core Concepts before making larger changes.
