Where Is Maka's Workspace Data Stored Locally? Apache Maka's Local‑First Directory Layout
Apache Maka stores all workspace data inside the Electron userData directory under workspaces/default/, containing runtime.sqlite, connection-catalog.json, credential-vault.json, settings.json, and an artifacts/ folder.
Apache Maka follows a strict local‑first architecture, ensuring that every workspace lives entirely on the user's machine without requiring remote services. This design guarantees complete offline functionality and privacy, with all persistent state residing in a predictable filesystem location. Understanding this layout is essential for backup, migration, and troubleshooting scenarios.
The Default Workspace Location
Maka creates a dedicated workspace directory inside the standard Electron userData folder. This location varies by operating system but follows Electron's cross-platform conventions.
According to the project README's "Local data and recovery" section【https://github.com/apache/maka/blob/main/README.md#L86-L95】, the default structure resides at:
<Electron userData>/workspaces/default/
Platform‑Specific Paths
Electron selects the userData path based on the host operating system:
- macOS:
~/Library/Application Support/Maka/workspaces/default/ - Windows:
%APPDATA%\Maka\workspaces\default\(typicallyC:\Users\<Username>\AppData\Roaming\Maka\workspaces\default\) - Linux:
~/.config/Maka/workspaces/default/
All persistent state—including the live event log, connection configurations, and generated artifacts—resides under this folder. This ensures the agent can be fully restored offline without any remote service, as implemented in the packages/cli/README.md documentation【https://github.com/apache/maka/blob/main/packages/cli/README.md#L24-L30】.
Directory Structure and Key Files
The workspaces/default/ directory contains five critical components that power Maka's local-first operation:
runtime.sqlite– The primary SQLite database containing the live event log and runtime stateconnection-catalog.json– Model-provider connection definitions and endpointscredential-vault.json– Plain-text API keys readable only by the OS accountsettings.json– User-level configuration preferencesartifacts/– Binary storage for generated files and outputs
The SQLite Event Log
The runtime.sqlite file serves as the durable log for all workspace activity. Located in the root of the workspace directory, this database persists the event stream that allows Maka to reconstruct state across sessions.
The storage implementation resides in packages/storage/src/, which handles the SQLite database connections and write-ahead logging【https://github.com/apache/maka/blob/main/packages/storage/src/**】.
Connection and Credential Storage
Maka separates connection metadata from secrets:
- Connection catalog stores provider URLs, model names, and non-sensitive configuration in
connection-catalog.json - Credential vault isolates API keys and tokens in
credential-vault.json
According to docs/workspace-privacy-context.md, the credential vault follows a privacy model where files are readable only by the OS account running Maka【https://github.com/apache/maka/blob/main/docs/workspace-privacy-context.md】.
Programmatic Access to Workspace Paths
You can resolve the active workspace directory programmatically using Electron's app module. This approach ensures your code works regardless of the underlying platform.
TypeScript Resolution Example
// Resolve the workspace directory from a running Maka process
import { app } from 'electron';
import * as path from 'path';
const workspaceRoot = path.join(
app.getPath('userData'),
'workspaces',
'default'
);
console.log('Maka workspace location →', workspaceRoot);
The app.getPath('userData') method returns the platform-specific directory where Maka stores its configuration, making this snippet portable across macOS, Windows, and Linux.
Shell Navigation Commands
To inspect the workspace contents directly from your terminal:
macOS:
ls "$HOME/Library/Application Support/Maka/workspaces/default"
Windows (Command Prompt):
dir "%APPDATA%\Maka\workspaces\default"
Linux:
ls ~/.config/Maka/workspaces/default
Privacy and Security Implications
Maka's local-first design means no data leaves your machine unless explicitly configured to sync. The credential-vault.json file stores API keys in plain text but relies on filesystem permissions for protection—readable only by the user account that created it.
This architecture eliminates network latency for core operations and ensures complete offline functionality. However, it places the responsibility for encryption-at-rest and backup squarely on the user, as detailed in the workspace privacy documentation【https://github.com/apache/maka/blob/main/docs/workspace-privacy-context.md】.
Summary
- Maka stores all workspace data in the Electron
userDatadirectory underworkspaces/default/ - The five core files are
runtime.sqlite,connection-catalog.json,credential-vault.json,settings.json, and theartifacts/folder - Platform paths follow Electron conventions:
~/Library/Application Support/(macOS),%APPDATA%(Windows), and~/.config/(Linux) - The
runtime.sqlitedatabase inpackages/storage/src/implements the durable event log - Credentials remain local and unencrypted (but permission-protected) in
credential-vault.json
Frequently Asked Questions
Can I change the default workspace location?
Currently, Maka uses a hardcoded relative path workspaces/default/ inside the Electron userData folder. While the project supports multiple workspaces conceptually, the default installation uses this specific subdirectory structure as documented in the README【https://github.com/apache/maka/blob/main/README.md#L86-L95】. Advanced users can symlink the directory to alternative locations, but native configuration options for custom paths are not exposed in the current CLI implementation.
Is the credential-vault.json file encrypted?
No, credential-vault.json stores API keys in plain JSON format. Security relies entirely on filesystem permissions—the file is readable only by the operating system account that created it. According to docs/workspace-privacy-context.md, this design prioritizes local-first accessibility over encryption-at-rest, meaning you should ensure your user account and disk encryption (like FileVault or BitLocker) protect these secrets【https://github.com/apache/maka/blob/main/docs/workspace-privacy-context.md】.
How do I backup my Maka workspace?
Since all data lives locally, backup requires copying the entire workspaces/default/ directory. The critical files to preserve are runtime.sqlite (your event history), connection-catalog.json (your providers), and credential-vault.json (your keys). The artifacts/ folder may be large depending on generated outputs, so consider excluding it if you only need to preserve configuration and history.
What happens if I delete the runtime.sqlite file?
Deleting runtime.sqlite erases all workspace history and runtime state. While your connection settings and credentials remain intact in their respective JSON files, Maka will lose the event log that enables session restoration and agent continuity. The storage layer in packages/storage/src/ treats this file as the source of truth, so deletion effectively resets the workspace to a fresh state while preserving static configuration【https://github.com/apache/maka/blob/main/packages/storage/src/**】.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →