Agent Skills: Editing Letta Code Desktop Preferences

Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktop_preferences.json. Use only when the user asks to change current Desktop/LCD settings such as theme, default working directory, remote access preference, or remote environment name via the preferences JSON.

UncategorizedID: letta-ai/letta-code/editing-letta-code-desktop-preferences

Repository

letta-aiLicense: Apache-2.0
2,814322

Install this agent skill to your local

pnpm dlx add-skill https://github.com/letta-ai/letta-code/tree/HEAD/src/skills/builtin/editing-letta-code-desktop-preferences

Skill Files

Browse the full folder contents for editing-letta-code-desktop-preferences.

Download Skill

Loading file tree…

src/skills/builtin/editing-letta-code-desktop-preferences/SKILL.md

Skill Metadata

Name
editing-letta-code-desktop-preferences
Description
Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktop_preferences.json. Use only when the user asks to change current Desktop/LCD settings such as theme, default working directory, remote access preference, or remote environment name via the preferences JSON.

Editing Letta Code Desktop Preferences

Use this skill only to edit the active Letta Code Desktop preferences JSON file. Do not use it for Desktop product-code changes, Electron IPC work, UI changes, or general Letta Cloud Desktop implementation tasks.

Preferences file

The Desktop preferences file is:

~/.letta/desktop_preferences.json

User-editable preference keys:

  • defaultWorkingDirectory: default folder for new local sessions.
  • theme: auto, light, or dark.
  • allowRemoteAccess: boolean for whether remote access should be enabled in preferences.
  • runInBackground: boolean for whether Desktop stays alive in tray/menu bar when all windows close.
  • startAtLogin: boolean for whether Desktop starts hidden at login.
  • remoteEnvName: environment name shown in the Letta Cloud environment picker for the cloud listener.
  • localBackendDirectory: directory containing local backend agents, conversations, and memory.
  • allowLocalAgentsWhenSignedIn: boolean for whether signed-in Desktop sessions can see local/offline agents.

System-managed keys (do not edit directly):

  • artifactsByAgent: per-agent artifacts panel state, written by Desktop UI.
  • debugPanelEnabled: developer debug panel, controlled via app menus.
  • remoteAppServerEnabled: Remote App Server toggle, applied at startup.
  • remoteAppServerUrl: Remote App Server URL, configured via preferences UI.

Workflow

  1. Read the existing JSON first.
  2. Preserve unknown keys.
  3. Merge only the requested preference updates.
  4. Write pretty JSON with a trailing newline.
  5. Do not edit token, provider, secret, agent, conversation, memory, or unrelated state files.
  6. Changes apply live within ~100ms via Desktop's file watcher; if Desktop is not running, changes take effect on next startup.

Safe edit command

Use a merge-style edit like this, changing only the requested keys:

node - <<'NODE'
const fs = require('fs');
const os = require('os');
const path = require('path');

const file = path.join(os.homedir(), '.letta', 'desktop_preferences.json');
fs.mkdirSync(path.dirname(file), { recursive: true });

const current = fs.existsSync(file)
  ? JSON.parse(fs.readFileSync(file, 'utf8'))
  : {};

const next = {
  ...current,
  // Example update. Replace this with the user's requested setting.
  theme: 'dark',
};

fs.writeFileSync(file, JSON.stringify(next, null, 2) + '\n');
NODE

Validation

After editing, read the file back or parse it to confirm valid JSON:

node -e "JSON.parse(require('fs').readFileSync(require('os').homedir() + '/.letta/desktop_preferences.json', 'utf8')); console.log('desktop_preferences.json is valid')"