Area
apps/server
Steps to reproduce
- Use the Claude provider on the desktop app with a local project that has a command file at
<project>/.claude/commands/start-session.md.
- Open a thread in that project.
- Type
/start.
Expected behavior
The / menu lists /start-session, the same as the Claude Code TUI when launched in <project>.
Actual behavior
The menu shows user and plugin commands plus the project's .claude/skills/* entries, but no project .claude/commands/* entries. Claude Code does load them: the agent in the same thread lists start-session among its available commands.
Mechanism, from reading server.asar (apps/server/dist/bin.mjs) in 0.0.42:
probeClaudeCapabilities runs with cwd from ServerConfig, which is the server's own working directory. slashCommands comes from that probe's init.commands, so it never includes a project's commands.
snapshotForCwd for the Claude driver returns { ...machineSnapshot, skills }. discoverClaudeSkills(config, cwd) reads only <configDir>/skills and <cwd>/.claude/skills. slashCommands stays the machine-wide list, and <cwd>/.claude/commands is never read.
persistProvider strips workspaceSnapshots, so ~/.t3/caches/claudeAgent.json holds only the machine list (253 commands here, none of them project commands).
Suggested fix: have the Claude snapshotForCwd also scan <cwd>/.claude/commands/**/*.md (subfolders become dir:name) and merge the results into slashCommands. Or run the capability probe with the workspace cwd.
Impact
Commands defined in a project can't be found from the menu. Users with a team or workspace command set have to know each name and type it in full.
Version or commit
T3 Code desktop 0.0.42, Claude Code 2.1.273
Environment
Windows 11, local connection
Workaround
Type the full command name without autocomplete. The command should still reach Claude Code, but I have not confirmed this on this build.
Area
apps/serverSteps to reproduce
<project>/.claude/commands/start-session.md./start.Expected behavior
The
/menu lists/start-session, the same as the Claude Code TUI when launched in<project>.Actual behavior
The menu shows user and plugin commands plus the project's
.claude/skills/*entries, but no project.claude/commands/*entries. Claude Code does load them: the agent in the same thread listsstart-sessionamong its available commands.Mechanism, from reading
server.asar(apps/server/dist/bin.mjs) in 0.0.42:probeClaudeCapabilitiesruns withcwdfromServerConfig, which is the server's own working directory.slashCommandscomes from that probe'sinit.commands, so it never includes a project's commands.snapshotForCwdfor the Claude driver returns{ ...machineSnapshot, skills }.discoverClaudeSkills(config, cwd)reads only<configDir>/skillsand<cwd>/.claude/skills.slashCommandsstays the machine-wide list, and<cwd>/.claude/commandsis never read.persistProviderstripsworkspaceSnapshots, so~/.t3/caches/claudeAgent.jsonholds only the machine list (253 commands here, none of them project commands).Suggested fix: have the Claude
snapshotForCwdalso scan<cwd>/.claude/commands/**/*.md(subfolders becomedir:name) and merge the results intoslashCommands. Or run the capability probe with the workspace cwd.Impact
Commands defined in a project can't be found from the menu. Users with a team or workspace command set have to know each name and type it in full.
Version or commit
T3 Code desktop 0.0.42, Claude Code 2.1.273
Environment
Windows 11, local connection
Workaround
Type the full command name without autocomplete. The command should still reach Claude Code, but I have not confirmed this on this build.