arrakis-surfer54 downloadsRun Claude Code and other AI agents on your own Linux server and pick up the same sessions on desktop or phone.
Run Claude Code and other AI agents on your own Linux server and pick up the same sessions on desktop or phone.
Includes chat, phase-gated plans saved as notes, a remote terminal, and direct chat with AI providers.
Project Darjeeling is an Obsidian plugin and companion server daemon designed to integrate AI coding agents and large language models seamlessly into your personal knowledge base.
.canvas).Darjeeling provides three distinct runtime modes:
┌─────────────────────────────────────────────────────────────────────────┐
│ Obsidian Client (Any Device) │
│ Chat Surface • Plan Engine • Terminal │
└────────────────────────────────────┬────────────────────────────────────┘
│
┌──────────────────────────────┼──────────────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Direct API │ │ Local Mode │ │ Remote Server│
│(Zero Server) │ │(Desktop Only)│ │ (Companion) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
▼ ▼ ▼
Google Gemini / Anthropic Local CLI (`claude`) Headless Linux
Claude / DeepSeek / Ollama & PTY in Vault Root Daemon (Port 8765)
darjeeling-server) running on your Linux host. Runs Claude Code and tmux terminal sessions, streaming bidirectional Protocol v2 WebSocket events to your desktop or mobile Obsidian app over private overlay networks.claude, agy) and an embedded Python PTY terminal directly on macOS or Linux desktop within your vault working directory.| Runtime Mode | Supported Platforms | Shell & Tools | Session Resumption | Notes & Canvas Export | Status |
|---|---|---|---|---|---|
| Remote Companion Server | Linux Host (Client: macOS, Linux, Windows, iOS, iPadOS, Android) |
Yes (Full bash & tmux) | Yes (Protocol v2 async turn recovery) | Yes | Stable (v1.0) |
| Desktop Local Mode | macOS, Linux Desktop | Yes (Local PTY) | Process lifetime | Yes | Stable (v1.0) |
| Direct Provider API | macOS, Linux, Windows, iOS, iPadOS, Android | No (Completion only) | No | Yes | Stable (v1.0) |
[!NOTE] Agent Support: Claude Code (
claude, tested versions0.2.29–0.2.32) is the primary supported agent CLI. Support for Google Antigravity (agy) and DeepSeek CLI is Experimental. Platforms: Tested on macOS and Linux. Windows, iOS, Android and iPadOS are supported.
SHA256SUMS from the latest release, verify, then run:VER=1.0.4
BASE=https://github.com/michaelperna/obsidian-darjeeling/releases/download/$VER
curl -fsSL -O "$BASE/install.sh" -O "$BASE/darjeeling-server-$VER.tar.gz" -O "$BASE/SHA256SUMS"
sha256sum --ignore-missing -c SHA256SUMS
sudo bash install.sh --yes --network auto
claude if it is not on the service user's PATH):sudo runuser -u darjeeling -- claude login
sudo darjeeling pair on the server (the installer also prints a code), then enter the 8-digit code in Obsidian under Settings > Darjeeling > Connections. A paired desktop can generate codes for your other devices./var/lib/darjeeling/vault (remembering to exclude .obsidian/ in both directions).Full installation details: Server Installation Guide.
Full details: Direct API Guide.
Darjeeling is designed specifically for sensitive personal and professional knowledge vaults:
plan mode (read-only analysis). Modifying workspace files requires acceptEdits, and autonomous commands require bypassPermissions (subject to the host server's permission ceiling).SecretStorage). Revoking a device terminates active WebSockets immediately.Every outbound network call site is audited and accounted for. Outbound network traffic is strictly restricted to configured endpoints, direct LLM providers, or user-clicked hyperlinks:
| ID | Destination | Protocol | Purpose | Data Sent |
|---|---|---|---|---|
host-ws |
Configured Darjeeling host | WebSocket | Agent event streaming & interactive turns | Prompts, permission responses, session inputs |
host-http |
Configured Darjeeling host | HTTP/HTTPS | Health checks, agent listing, async turn management | Authentication token in header, turn options |
host-pairing |
Configured Darjeeling host | HTTP/HTTPS | Device token exchange & pairing verification | 8-digit pairing code, device metadata |
host-sync |
Configured Darjeeling host | HTTP/HTTPS | Vault note sync to remote host workspace | Selected markdown note content & relative path |
host-terminal |
Configured Darjeeling host | WebSocket | Remote interactive PTY terminal session | Keystrokes, terminal dimensions, auth token in protocol header |
provider-anthropic |
Anthropic API (api.anthropic.com) |
HTTPS | Direct LLM completions & model listing | User prompts, optional system prompt, api key in header |
provider-gemini |
Google Gemini API (generativelanguage.googleapis.com) |
HTTPS | Direct LLM completions & model listing | User prompts, optional system prompt, api key in header |
provider-deepseek |
DeepSeek API (api.deepseek.com) |
HTTPS | Direct LLM completions & model listing | User prompts, optional system prompt, api key in header |
provider-ollama |
Local or configured Ollama instance | HTTP/HTTPS | Direct LLM completions & model listing | User prompts, optional system prompt |
provider-openai |
OpenAI-compatible endpoint | HTTP/HTTPS | Direct LLM completions & model listing | User prompts, optional system prompt, api key in header |
browser-open |
External browser target | OS URL Handler | Opening terminal hyperlinks in external browser | Destination URL clicked by user |
darjeeling) with systemd hardening (NoNewPrivileges=yes, ProtectSystem=full)..obsidian/ in both directions so that server-side file edits can never write untrusted plugins or snippets to connected client devices.Project Darjeeling is built on open standards and open-source software: