freespace8/dsh-plugins--plugins-dsh-at-file0

@freespace8/dsh-at-file

Codex-style @ path mentions for the DeepSeek Harness Web GUI: type @ to pick a workspace file/folder and reference its path; the host validates and marks it on send without reading file contents. Codex 风格 @ 路径引用。

AI Analysis

核心用途是在聊天框中通过 @ 快捷键快速补全和引用项目文件路径。适合需要频繁向 AI 指示特定文件位置的开发者。支持拼音/首字母过滤与键盘导航。

Package
@freespace8/dsh-at-file
Version
0.2.3
License
MIT
Last updated
Aug 16, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:freespace8/dsh-plugins#21734829ebf838b852a9df4d5207c7f59be1289a&path:plugins/dsh-at-file

Usage

Type @ in a session composer: candidates render on a single line, the popup width matches the composer, file names show in full (never truncated), and the containing directory follows after (same-named files are distinguished by directory). Directories come first, files after, each sorted alphabetically.

The query is split at the last / into "directory + keyword": @plugins/d shows only the direct children of plugins whose names contain d; @plugins/ shows all direct children of plugins. While the menu is open, Backspace/Delete edits the filter character-by-character.

Keyboard navigation: Enter on a directory enters it (the menu refreshes to its children; keep descending, e.g. @plugins/dsh-at-file/lib/); Enter on a file confirms the normal selection flow. Tab confirms immediately — for both files and directories it inserts @path and a directory is never descended into, so to select a directory without entering it, highlight it and press Tab. Mouse click selects the highlighted entry directly.

Selecting an entry turns it into a pill whose width hugs the full @relative-path with at least 2 px of margin (and 2–3 px above/below, never exceeding its line). Multiple pills are separated by natural spaces and never overlap; long paths display in full without truncation. After a selection is confirmed (menu closed), with the caret inside a pill, adjacent to it, or on its separator space, a single Backspace/Delete removes the whole pill (the @ list does not pop up); everywhere else editing stays character-by-character.

Configuration

Override any field in the profile's cordis.patch.yml by id (the config block is replaced wholesale):

- id: dsh-at-file
  config:
    maxIndexedFiles: 10000   # per-workspace index entry cap (default 5000)
    ignoreDirs: []           # directory basenames skipped during indexing (defaults in src/defaults.js)

The toggle and filter rules in 设置 → 文件提及 are persistent settings that take effect in real time — no restart needed.