@letta-ai/letta-code 0.31.2 → 0.31.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.31.2",
3
+ "version": "0.31.3",
4
4
  "description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.10",
@@ -15,12 +15,22 @@ The Desktop preferences file is:
15
15
  ~/.letta/desktop_preferences.json
16
16
  ```
17
17
 
18
- Known preference keys:
18
+ User-editable preference keys:
19
19
 
20
20
  - `defaultWorkingDirectory`: default folder for new local sessions.
21
21
  - `theme`: `auto`, `light`, or `dark`.
22
22
  - `allowRemoteAccess`: boolean for whether remote access should be enabled in preferences.
23
- - `remoteEnvName`: environment name shown for remote access.
23
+ - `runInBackground`: boolean for whether Desktop stays alive in tray/menu bar when all windows close.
24
+ - `startAtLogin`: boolean for whether Desktop starts hidden at login.
25
+ - `remoteEnvName`: environment name shown in the Letta Cloud environment picker for the cloud listener.
26
+ - `localBackendDirectory`: directory containing local backend agents, conversations, and memory.
27
+ - `allowLocalAgentsWhenSignedIn`: boolean for whether signed-in Desktop sessions can see local/offline agents.
28
+
29
+ System-managed keys (do not edit directly):
30
+ - `artifactsByAgent`: per-agent artifacts panel state, written by Desktop UI.
31
+ - `debugPanelEnabled`: developer debug panel, controlled via app menus.
32
+ - `remoteAppServerEnabled`: Remote App Server toggle, applied at startup.
33
+ - `remoteAppServerUrl`: Remote App Server URL, configured via preferences UI.
24
34
 
25
35
  ## Workflow
26
36
 
@@ -29,7 +39,7 @@ Known preference keys:
29
39
  3. Merge only the requested preference updates.
30
40
  4. Write pretty JSON with a trailing newline.
31
41
  5. Do not edit token, provider, secret, agent, conversation, memory, or unrelated state files.
32
- 6. Tell the user that the change applies live only if their Desktop build watches preference-file changes; otherwise they should reload/restart Desktop or use Preferences → General.
42
+ 6. Changes apply live within ~100ms via Desktop's file watcher; if Desktop is not running, changes take effect on next startup.
33
43
 
34
44
  ## Safe edit command
35
45
 
@@ -96,19 +96,17 @@ Returns the raw API response with full agent details. Key fields:
96
96
  ## Related Skills
97
97
 
98
98
  - **migrating-memory** - Once you find an agent, use this skill to copy/share memory blocks
99
- - **searching-messages** - Search messages across all agents to find which agent discussed a topic. Use `--all-agents` to get `agent_id` values, then use this skill to get full agent details.
100
99
 
101
100
  ### Finding Agents by Topic
102
101
 
103
102
  If you need to find which agent worked on a specific topic:
104
103
 
105
- 1. Load both skills: `searching-messages` and `finding-agents`
106
- 2. Search messages across all agents:
104
+ 1. Search messages across all agents:
107
105
  ```bash
108
106
  letta messages search --query "topic" --all-agents --limit 10
109
107
  ```
110
- 3. Note the `agent_id` values from matching messages
111
- 4. Get agent details:
108
+ 2. Note the `agent_id` values from matching messages
109
+ 3. Get agent details:
112
110
  ```bash
113
111
  letta agents list --query "partial-name"
114
112
  ```
@@ -52,7 +52,7 @@ letta agents list --tags "origin:letta-code"
52
52
  ```
53
53
 
54
54
  ### By Topic They Discussed
55
- Load the `searching-messages` skill to find which agent worked on something:
55
+ Search messages across all agents to find which agent worked on something:
56
56
  ```bash
57
57
  letta messages search --query "topic" --all-agents
58
58
  ```
@@ -157,7 +157,7 @@ letta -p --from-agent $LETTA_AGENT_ID \
157
157
  - Text-mode scripts return only the **final assistant message** (not tool calls, reasoning, or metadata)
158
158
  - JSON and stream-json responses include `agent_id`, `conversation_id`, and `environment.source` so you can continue the same conversation/runtime. Environment-routed turns also include `environment.id`, `connection_id`, `device_id`, and `name`.
159
159
  - The target agent may use tools, think, and reason - but you only see their final response
160
- - To see the full conversation transcript (including tool calls), use the `searching-messages` skill with `letta messages list --agent <id>` targeting the other agent
160
+ - To see the full conversation transcript (including tool calls), use `letta messages list --agent <id>` targeting the other agent
161
161
 
162
162
  ## How It Works
163
163
 
@@ -186,4 +186,3 @@ Continuing a hidden conversation with `--conversation <id>` keeps it hidden —
186
186
  ## Related Skills
187
187
 
188
188
  - **finding-agents**: Find agents by name, tags, or fuzzy search
189
- - **searching-messages**: Search past messages across agents, or view full conversation transcripts
@@ -257,7 +257,11 @@ Selected global settings keys:
257
257
  | `preferredBackendMode` | Startup backend preference, `api` or `local` |
258
258
  | `channelCredentialsStore` | Channel token storage, `file`, `keyring`, or `auto` |
259
259
  | `reflectionTrigger` / `reflectionStepCount` | Default reflection cadence |
260
+ | `reflectionMerge` / `reflectionMergeInstructions` | Reflection change integration policy |
260
261
  | `reflectionSettingsByAgent` | Per-agent reflection cadence |
262
+ | `conversationSwitchAlertEnabled` | Send system-reminder when switching conversations/agents |
263
+ | `createDefaultAgents` | Create Memo/Incognito default agents on startup (default: true) |
264
+ | `windowTitle` | Configurable terminal window title fields |
261
265
  | `permissions` | Allow/deny/ask/alwaysAsk rules |
262
266
  | `env` | User-wide environment variables for Letta Code |
263
267
  | `experiments` | Feature flags |
@@ -271,7 +275,7 @@ Toolset values currently include `auto`, `default`, `codex`, `codex_snake`, `gem
271
275
 
272
276
  ## Permissions
273
277
 
274
- Permissions decide whether tool calls are allowed, denied, or require approval. User/global permission rules affect all agents using that settings file: `allow` can weaken review, while `deny` and `alwaysAsk` can brick workflows. Valid modes are `standard`, `acceptEdits`, and `unrestricted`; legacy `default` maps to `standard`, while `bypassPermissions` and `fullAccess` map to `unrestricted`. The default mode is `unrestricted` unless startup flags or settings override it.
278
+ Permissions decide whether tool calls are allowed, denied, or require approval. User/global permission rules affect all agents using that settings file: `allow` can weaken review, while `deny` and `alwaysAsk` can brick workflows. Valid modes are `standard`, `acceptEdits`, `unrestricted`, and `strict`; legacy `default` maps to `standard`, while `bypassPermissions` and `fullAccess` map to `unrestricted`. The default mode is `unrestricted` unless startup flags or settings override it.
275
279
 
276
280
  The removed `memory` mode is invalid; memory access is governed by normal tool permissions plus the server/filesystem checks on the path used. These helper guardrails do not restrict raw Bash/API access. `permissions.mode` supplies a persisted startup default, rule lists still take precedence, and channel accounts have their own `defaultPermissionMode`. Inspect all three when channel approvals differ from the interactive CLI.
277
281
 
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: using-cloud-mcp
3
+ description: Uses MCP servers connected to the current Letta Cloud agent (cloud MCP). Load when the user asks to use a connected MCP server, list the agent's MCP servers or MCP tools, run an MCP tool connected in ADE/chat, or mentions cloud MCP, server-side MCP, agent MCP, or `letta cloud-mcp`.
4
+ ---
5
+
6
+ # Using Cloud MCP
7
+
8
+ Letta Cloud stores MCP server connections per agent. The `letta cloud-mcp` CLI lists and runs those servers' tools through the Letta API, so it works from any surface where the agent runs: cloud sandboxes (chat.letta.com), Letta Desktop, and terminals.
9
+
10
+ ## Workflow
11
+
12
+ 1. List MCP servers connected to this agent:
13
+
14
+ ```bash
15
+ letta cloud-mcp list
16
+ ```
17
+
18
+ 2. Pick the relevant `id` from the JSON output, then list its tools:
19
+
20
+ ```bash
21
+ letta cloud-mcp tools <mcp-server-id>
22
+ ```
23
+
24
+ 3. Pick a tool `id`, inspect its name and description, and run it with a JSON object:
25
+
26
+ ```bash
27
+ letta cloud-mcp run <mcp-server-id> <tool-id> --args '{"key":"value"}'
28
+ ```
29
+
30
+ ## Rules
31
+
32
+ - Do not ask for an agent ID unless the user wants another agent. The CLI reads `LETTA_AGENT_ID`/`AGENT_ID` from the environment.
33
+ - Treat command output as JSON. Summarize relevant results instead of pasting large raw payloads.
34
+ - If `list` is empty, ask the user to connect an MCP server to the agent on the MCP servers page.
35
+ - If `tools` is empty for a connected server, the server's tools were never synced. Ask the user to resync the server from the MCP servers page; the CLI has no refresh action.
36
+ - If a connected server has type `stdio`, its tools cannot run on hosted Letta Cloud. Tell the user instead of retrying.
37
+ - This requires a signed-in Letta Cloud agent. MCP servers configured locally in the terminal (`/mcp`) are unrelated to this CLI.
@@ -1,36 +0,0 @@
1
- ---
2
- name: using-server-mcp
3
- description: Uses MCP servers that are already connected to the current Letta Cloud agent through server-side MCP associations. Load when the user asks to use an associated MCP server, list an agent's MCP servers or MCP tools, run an MCP tool connected in ADE/chat, or mentions server-side MCP, agent MCP, or `letta server-mcp`.
4
- ---
5
-
6
- # Using Server-Side MCP
7
-
8
- Use this skill when the current Letta Cloud agent has MCP servers connected in Letta and you need to discover or run their tools.
9
-
10
- ## Workflow
11
-
12
- 1. List connected MCP servers:
13
-
14
- ```bash
15
- letta server-mcp list
16
- ```
17
-
18
- 2. Pick the relevant `id` from the JSON output, then list its tools:
19
-
20
- ```bash
21
- letta server-mcp tools <mcp-server-id>
22
- ```
23
-
24
- 3. Pick a tool `id`, inspect the tool name/description, and run it with a JSON object:
25
-
26
- ```bash
27
- letta server-mcp run <mcp-server-id> <tool-id> --args '{"key":"value"}'
28
- ```
29
-
30
- ## Rules
31
-
32
- - Prefer the `letta server-mcp ...` CLI over model-facing MCP tools. There is no dedicated `agent_mcp` tool.
33
- - Do not ask for an agent ID unless the user wants another agent. In normal Letta Code sessions the CLI reads `LETTA_AGENT_ID`/`AGENT_ID` from the environment.
34
- - Treat command output as JSON. Summarize relevant results instead of pasting large raw payloads.
35
- - If no servers are listed, tell the user to connect an MCP server to the agent in the MCP servers page first.
36
- - This only works for signed-in Letta Cloud agents with server-side MCP support. It is separate from local MCP transport testing or converting arbitrary MCP servers into skills.