[FEATURE] Desktop Files pane: option to show dot-prefixed files and directories (hidden files)

Status Open
Reported on v2.1.270
Maintainer reply None cached
Activity 1 comment · opened Sep 16, 2026

Problem Statement

The Files pane in the Claude desktop app (Code tab) hides every entry whose name starts with a dot: .env, .env.local, .claude/, .github/, .gitignore, .vscode/, and so on. There is no toggle, setting, or shortcut to reveal them.

This is not a .gitignore effect: in my case the working directory is not even a git repository, and non-ignored entries like .github/ and .gitignore are hidden as well. It is a fixed name-based filter.

For a remote (SSH) session I checked where the filter lives. The listing is produced by the remote helper (~/.claude/remote/srv/<build>/server, claude-ssh 19f30c46353dde1606cad1fede73d0e9be222140, built 2026-09-08) in its files.list RPC handler. (*FilesHandler).list iterates os.ReadDir and unconditionally skips any name whose first byte is .:

5ca21b:  call   rcx                    ; entry.Name()
5ca225:  cmp    BYTE PTR [rax],0x2e    ; name[0] == '.'
5ca228:  sete   dl
5ca231:  je     0x5ca23d               ; not a dot entry -> add to result
5ca23b:  jmp    0x5ca1d4               ; dot entry -> skipped

The files.list request has no parameter to include hidden entries, so nothing on the client side could opt in today. files.stat and files.read have no such check, which is why a dotfile still opens fine when its path is clicked in the chat — only the tree listing hides it. #55699 reports the same behaviour for local macOS sessions, so it looks like a deliberate default in both code paths.

For projects where the important files are dotfiles (.claude/settings.json, .github/workflows/*.yml, .env*), the pane cannot be used to browse the project. Other coding apps (e.g. the Codex desktop app) show these entries.

Proposed Solution

Add a "Show hidden files" toggle to the Files pane:

  • exposed in the pane (context menu or header button) and bound to the platform shortcut (Cmd+Shift+. on macOS, matching Finder), and/or a persistent preference in Settings
  • persisted per workspace or globally, either is fine
  • for remote sessions, pass the choice through as an includeHidden-style parameter of the claude-ssh files.list RPC (the server currently drops dot entries before the client sees them)
  • optionally keep .git/ collapsed or excluded by default even when the toggle is on

Any future .gitignore-based filtering should stay independent of dotfile visibility.

Alternative Solutions

  • Clicking a dotfile path in the chat (or asking Claude to open it) works, because files.read does not filter. This needs the path to be typed or mentioned first.
  • Using the terminal pane (cat .env).
  • @ mentions in the prompt: the CLI's file completion does include hidden files, so the inconsistency is only in the Files pane.

Priority

High - Significant impact on productivity

Feature Category

Other

Use Case Example

  1. Open a project in the Claude desktop app over SSH (macOS app, Linux host).
  2. The repository keeps its configuration in .claude/, .github/workflows/, and .env.example.
  3. Open the Files pane to review those files before starting a session: none of them appear in the tree, and there is no indication that entries are hidden.
  4. With the toggle, they would show up in the tree like in any editor or file manager, and the pane could be used for the review.

Additional Context

  • Previous requests: #53519 (11 👍, no maintainer response, auto-closed as inactive on 2026-06-03 and locked) and #55699 (auto-closed as a duplicate of #53519 three days after filing, locked). Since both are locked, this issue re-files the request as the bots suggest.
  • Environment: Claude desktop app 2.110.0 (dfb2ba, 2026-09-15) on macOS 26.6.2 (25G83), remote SSH session to a Linux host; app-managed CLI 2.1.270; remote helper claude-ssh 19f30c46353dde1606cad1fede73d0e9be222140 (built 2026-09-08T17:26:17Z).
  • The desktop docs (https://code.claude.com/docs/en/desktop) do not mention that hidden entries are omitted from the pane.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗