Skip to content

[Bug]: Project .claude/commands/*.md never appear in the / menu for Claude; the per-workspace refresh only scans .claude/skills #12214

Description

@DigitalDwight

Area

apps/server

Steps to reproduce

  1. Use the Claude provider on the desktop app with a local project that has a command file at <project>/.claude/commands/start-session.md.
  2. Open a thread in that project.
  3. 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.

Activity

  1. yupipi93 commented on Sep 28, 2026

    @yupipi93

    Same here on macOS, desktop 0.0.42, Claude Code 2.1.283. Two data points for whoever picks this up after V2:

    • Typing the full command works. The thread session runs in the project cwd, so Claude Code expands it. I checked by replaying the stream-json user message T3 sends against claude in the project directory: init.slash_commands lists the project command and it executes. Only discovery is broken.
    • Stopgap if you mostly use one command set: link it as user-level commands, ln -s <project>/.claude/commands ~/.claude/commands. The capability probe runs from the server cwd ($HOME in the packaged app), so they then show up in the menu for every project. When the same directory is both user and project level, Claude Code lists each name once.

    On main (d15210c) ClaudeDriver.snapshotForCwd still only merges discoverClaudeSkills, so this still applies. #12426 had a fix and was closed because of the V2 rewrite of the provider layer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions