Agent skill

Editing Letta Code Desktop Preferences

by letta-ai in letta-ai/letta-code

Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktoppreferences.json.

Apache-2.0Auto-check passed

Install Editing Letta Code Desktop Preferences

skills CLI
$ npx skills add letta-ai/letta-code --skill editing-letta-code-desktop-preferences -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install letta-ai/letta-code editing-letta-code-desktop-preferences --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/builtin/editing-letta-code-desktop-preferences .claude/skills/editing-letta-code-desktop-preferences && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
editing-letta-code-desktop-preferences
GitHub stars
3.6k
Token cost
~763 tokens
SKILL.md length
258 words
Files
1
Skills in repo
25
Repo updated
First seen
Licence
Apache-2.0

At a glance

Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktoppreferences.json.

  • Works in 6 steps: Read the existing JSON first. → Preserve unknown keys. → Merge only the requested preference… → …
  • Asks to change current Desktop/LCD settings such as theme
  • SKILL.md covers Preferences file, Workflow, Safe edit command and Validation
  • Calls node

What it does

Editing Letta Code Desktop Preferences is an agent skill from letta-ai/letta-code. Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktoppreferences.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.

Its SKILL.md is about 760 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Letta. The repository describes itself as: Stateful agents that are like people, with memory, identity, and the ability to learn and adapt. The licence is Apache-2.0.

When your agent uses it

  • Asks to change current Desktop/LCD settings such as theme
  • Default working directory
  • Remote access preference
  • Remote environment name via the preferences JSON

Example prompts

  • “Use the editing-letta-code-desktop-preferences skill to edit Letta Code Desktop (LCD) preferences by safely reading and updating…”
  • “/editing-letta-code-desktop-preferences”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  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.

What it can do on your machine

Read from SKILL.md and the folder at commit d31b879. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Editing Letta Code Desktop Preferences loads about 763 tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 258 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~763

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from letta-ai/letta-code at commit d31b879, republished under its Apache-2.0 licence (© letta-ai). 258 words, ~763 tokens.

Download SKILL.mdSave it as .claude/skills/editing-letta-code-desktop-preferences/SKILL.md (or your agent's skills folder).
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:

text
~/.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:

bash
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:

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

© letta-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in src/skills/builtin/editing-letta-code-desktop-preferences of letta-ai/letta-code.

Open the folder on GitHubat commit d31b879

Compare with similar skills

Editing Letta Code Desktop Preferences next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Editing Letta Code Desktop Preferences compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Editing Letta Code Desktop Preferences this skillletta-ai/letta-code3.6k—~763Automated safety check: PassApache-2.0
Lettabotletta-ai/lettabot327—~3.4kAutomated safety check: PassApache-2.0
Creating Letta Code Channelsletta-ai/skills149—~1.1kAutomated safety check: PassMIT
Letta Configurationletta-ai/skills149—~1.3kAutomated safety check: NotesMIT
Letta Filesystem To Memfsletta-ai/skills149—~1.3kAutomated safety check: PassMIT
Navigating Chatgpt Historyletta-ai/skills149—~1.3kAutomated safety check: PassMIT

Similar skills

  • Lettabot

    letta-ai/lettabot

    Set up and run LettaBot - a multi-channel AI assistant for Telegram, Slack, Discord, WhatsApp, and Signal.

    327 GitHub stars~3.4k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed
  • Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels.

    149 GitHub stars~1.1k tokensUpdated 8 days ago
    Writing & ContentAuto-check passed
  • Letta Configuration

    letta-ai/skills

    Configure LLM models and providers for Letta agents and servers.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    DevOps & CloudAuto-check: notes
  • Migrates deprecated Letta Filesystem folders/files to MemFS using markdown document corpora, chunking, local lexical search, and QMD semantic search via the memfs-search skill.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    Documents & OfficeAuto-check passed
  • Navigates archived ChatGPT or Claude-style conversation exports and a MemFS reference archive on demand.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    Auto-check passed
  • Self Configuration

    letta-ai/skills

    Configures Letta agents' own runtime behavior, including model, context window, system prompt, reasoning, conversation overrides, compaction settings, and compaction prompts.

    149 GitHub stars~2.4k tokensUpdated 8 days ago
    AI & LLM EngineeringAuto-check passed

More from letta-ai/letta-code

All 25 skills in this repo
  • Creating Skills

    letta-ai/letta-code

    Guide for creating effective skills. An agent skill from letta-ai/letta-code.

    3.6k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Generating Mod Envs

    letta-ai/letta-code

    Generates and reviews mod learning env JSON files for Letta Code local mods.

    3.6k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Initializing Memory

    letta-ai/letta-code

    Comprehensive guide for initializing or reorganizing agent memory.

    3.6k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Self Configuration

    letta-ai/letta-code

    Inspect or modify Letta Code's own memory, model, context window, system prompt, compaction, permissions, toolsets, mods, skills, channels, schedules, agent secrets, and local runtime settings.

    3.6k GitHub stars~7k tokensUpdated today
    Auto-check passed
  • Browser Use

    letta-ai/letta-code

    Control a real browser to navigate pages, click, type, fill forms, inspect rendered UI, take screenshots, or record video.

    3.6k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Creating Mods

    letta-ai/letta-code

    Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle/turn events, scoped conversation helpers, panels, and capability-gated behavior.

    3.6k GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Editing Letta Code Desktop Preferences

What does Editing Letta Code Desktop Preferences do?

Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~/.letta/desktoppreferences.json. Editing Letta Code Desktop Preferences is an agent skill from letta-ai/letta-code.json.

When should I use Editing Letta Code Desktop Preferences?

Editing Letta Code Desktop Preferences fits situations like: asks to change current Desktop/LCD settings such as theme; default working directory; remote access preference; remote environment name via the preferences JSON.

How do I install Editing Letta Code Desktop Preferences in Claude Code?

Run `npx skills add letta-ai/letta-code --skill editing-letta-code-desktop-preferences -a claude-code`. Or copy the skill folder (src/skills/builtin/editing-letta-code-desktop-preferences in letta-ai/letta-code) into .claude/skills/editing-letta-code-desktop-preferences in your project. Claude Code loads it when a task matches its description.

How do I install Editing Letta Code Desktop Preferences in Codex?

Run `npx skills add letta-ai/letta-code --skill editing-letta-code-desktop-preferences -a codex`. Or copy the skill folder (src/skills/builtin/editing-letta-code-desktop-preferences in letta-ai/letta-code) into .agents/skills/editing-letta-code-desktop-preferences in your project. Codex loads it when a task matches its description.

Can I use Editing Letta Code Desktop Preferences in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letta-ai/letta-code --skill editing-letta-code-desktop-preferences -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/editing-letta-code-desktop-preferences, .gemini/skills/editing-letta-code-desktop-preferences, .github/skills/editing-letta-code-desktop-preferences and .opencode/skills/editing-letta-code-desktop-preferences in your project.

What does Editing Letta Code Desktop Preferences need to run?

Going by SKILL.md and its folder, Editing Letta Code Desktop Preferences needs the command-line tools its instructions call (node).

Does Editing Letta Code Desktop Preferences access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Editing Letta Code Desktop Preferences safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Editing Letta Code Desktop Preferences use?

Editing Letta Code Desktop Preferences is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Editing Letta Code Desktop Preferences use?

About 763 tokens (SKILL.md is roughly 3.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Editing Letta Code Desktop Preferences?

Skills that share tags, products or a category with Editing Letta Code Desktop Preferences: Lettabot (letta-ai/lettabot, 327 stars), Creating Letta Code Channels (letta-ai/skills, 149 stars), Letta Configuration (letta-ai/skills, 149 stars) and Letta Filesystem To Memfs (letta-ai/skills, 149 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Editing Letta Code Desktop Preferences?

letta-ai (a GitHub organization) maintains it in letta-ai/letta-code, which has 3,562 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 10, 2026.

Source: letta-ai/letta-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.