Skip to content

Deeplake CLI (Virtual Filesystem)

Deeplake CLI turns any folder into a cloud-native virtual filesystem backed by Deeplake's managed service. Files persist across sessions, sync in real-time between multiple AI agents, and are searchable with BM25 and vector queries - all through standard filesystem commands (ls, cat, echo).

Objective

Install the Deeplake CLI, mount a persistent directory, and use it as shared memory for AI agents like Claude Code, Cursor, and OpenClaw.

How It Works

POSIX Schema

Any tool that reads or writes files works transparently - no plugins, no SDKs, no code changes.

Install

One command, no dependencies (Node.js is bundled):

curl -fsSL deeplake.ai/install | bash

This installs the deeplake CLI to ~/.deeplake/ and creates a symlink at /usr/local/bin/deeplake.

Install

FUSE requirement

FUSE is installed automatically by the install script. If it's missing on your system, you can install it manually:

  • macOS: brew install --cask fuse-t
  • Linux: sudo apt install fuse (Ubuntu/Debian) or sudo yum install fuse (RHEL/CentOS)

Quickstart

1. Initialize and mount

Run deeplake init - it's fully interactive:

deeplake init

The init wizard walks you through:

  1. Authentication: the CLI asks you to authenticate. It provides a browser link for OAuth login.

    Auth prompt

    Open the link in your browser to start the authentication flow:

    Browser auth link

  2. Login: enter your credentials on the login page to connect your account.

    Device confirmation

    Login credentials

    Once authenticated, the CLI confirms the connection:

    Success confirmation

  3. Choose organization: select which workspace to use. This determines where your data is stored.

    Choose organization

  4. Choose mount path: you specify the local folder where the filesystem will be mounted (e.g. ~/agent-memory). The CLI connects it to your workspace and table, and the directory is live immediately.

    Mount complete

After init completes, the directory is already mounted - no separate mount step needed.

2. Use it

# Save a note
echo "User prefers TypeScript over JavaScript" > ~/agent-memory/preferences.txt

# Read it back (from any machine or session)
cat ~/agent-memory/preferences.txt

# List all stored files
ls -la ~/agent-memory/

Files are directly synced to the server on every write. There's no need for git init or manual commits. If you want version control for your own workflow, you can git clone the directory, but it's not required - Deeplake handles persistence and sync automatically.

3. Unmount when done

deeplake umount ~/agent-memory

Pending writes are flushed before unmounting.

Using with AI Agents

The real power of Deeplake CLI is giving AI agents persistent, shared memory through the filesystem they already know how to use.

Claude Code

Point Claude Code at a mounted directory in your CLAUDE.md:

<!-- CLAUDE.md -->
Persistent memory is mounted at ~/agent-memory/
- Save important decisions to ~/agent-memory/decisions/
- Store user preferences in ~/agent-memory/preferences.txt
- Read past session notes from ~/agent-memory/sessions/

Claude Code will read and write files naturally - all data persists across sessions.

Cursor / GitHub Copilot

Open the mounted folder as a project in your IDE. The AI assistant sees all files and can create/edit them. Changes sync automatically to Deeplake.

Multiple Agents, Same Data

Mount the same workspace on multiple machines. Run deeplake init on each machine and select the same workspace and table during the interactive setup:

# Machine A (Claude Code)
deeplake init
# → select workspace "my-team", table "shared-memory"

# Machine B (Cursor)
deeplake init
# → select the same workspace "my-team", table "shared-memory"

Both agents see the same files in real-time. Writes from one are visible to the other within milliseconds.

CLI Reference

Command Description
deeplake init Interactive setup: authenticate, choose workspace/table, and mount
deeplake init --workspace <name> Skip workspace selection prompt
deeplake init --table <name> Skip table selection prompt
deeplake init --path <dir> Mount at the specified directory instead of prompting
deeplake mount <path> Mount a previously initialized directory
deeplake mount --all Mount all registered directories
deeplake umount <path> Unmount (flushes pending writes)
deeplake list Show registered mounts and their status
deeplake login Authenticate with Deeplake
deeplake logout Clear stored credentials

Performance

Deeplake CLI uses multi-layer caching for fast access:

Operation First access Cached
Read file ~110ms ~1ms
Write file < 1ms (write-back cache) < 1ms
List directory ~50ms ~1ms

Writes are instant thanks to a write-back cache that syncs to the cloud every 500ms in the background.

What to try next