# Where Is Maka's Workspace Data Stored Locally? Apache Maka's Local‑First Directory Layout

> Discover where Apache Maka stores your workspace data locally within the Electron userData directory. Learn about the local-first data layout and key files like runtime.sqlite and settings.json.

- Repository: [The Apache Software Foundation/maka](https://github.com/apache/maka)
- Tags: how-to-guide
- Published: 2026-09-12

---

**Apache Maka stores all workspace data inside the Electron `userData` directory under `workspaces/default/`, containing `runtime.sqlite`, [`connection-catalog.json`](https://github.com/apache/maka/blob/main/connection-catalog.json), [`credential-vault.json`](https://github.com/apache/maka/blob/main/credential-vault.json), [`settings.json`](https://github.com/apache/maka/blob/main/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:

```text
<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\` (typically `C:\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`](https://github.com/apache/maka/blob/main/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 state
- **[`connection-catalog.json`](https://github.com/apache/maka/blob/main/connection-catalog.json)** – Model-provider connection definitions and endpoints
- **[`credential-vault.json`](https://github.com/apache/maka/blob/main/credential-vault.json)** – Plain-text API keys readable only by the OS account
- **[`settings.json`](https://github.com/apache/maka/blob/main/settings.json)** – User-level configuration preferences
- **`artifacts/`** – 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`](https://github.com/apache/maka/blob/main/connection-catalog.json)
- **Credential vault** isolates API keys and tokens in [`credential-vault.json`](https://github.com/apache/maka/blob/main/credential-vault.json)

According to [`docs/workspace-privacy-context.md`](https://github.com/apache/maka/blob/main/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

```typescript
// 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:**

```bash
ls "$HOME/Library/Application Support/Maka/workspaces/default"

```

**Windows (Command Prompt):**

```cmd
dir "%APPDATA%\Maka\workspaces\default"

```

**Linux:**

```bash
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`](https://github.com/apache/maka/blob/main/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 `userData` directory under `workspaces/default/`
- The five core files are `runtime.sqlite`, [`connection-catalog.json`](https://github.com/apache/maka/blob/main/connection-catalog.json), [`credential-vault.json`](https://github.com/apache/maka/blob/main/credential-vault.json), [`settings.json`](https://github.com/apache/maka/blob/main/settings.json), and the `artifacts/` folder
- Platform paths follow Electron conventions: `~/Library/Application Support/` (macOS), `%APPDATA%` (Windows), and `~/.config/` (Linux)
- The `runtime.sqlite` database in `packages/storage/src/` implements the durable event log
- Credentials remain local and unencrypted (but permission-protected) in [`credential-vault.json`](https://github.com/apache/maka/blob/main/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`](https://github.com/apache/maka/blob/main/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`](https://github.com/apache/maka/blob/main/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`](https://github.com/apache/maka/blob/main/connection-catalog.json) (your providers), and [`credential-vault.json`](https://github.com/apache/maka/blob/main/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/**】.