Skip to content
Development
Skill

/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

From plugin
letta-code
3.4k23 skills8 hooks
Install
$ npx -y skills add letta-ai/letta-code --skill editing-letta-code-desktop-preferences --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/editing-letta-code-desktop-preferences

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

editing-letta-code-desktop-preferences.SKILL.md
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')"
Read more
Ships withletta-code

Letta Code is a stateful agent harness for creating agents that are more like people than tools. Letta Code agents have memory, identity, and a sense of experience over time.

Get the whole plugin
Stats
3,356
Stars
407
Forks
Active
Maintenance
TypeScript
Language
Apache-2.0
License
2d ago
Last commit
10mo ago
Created

Repo: letta-ai/letta-code

Other skills on letta-code.