Skip to content

Add Claude-style @ context completions - #2454

Closed
kshitijk4poor wants to merge 8 commits into
NousResearch:mainfrom
kshitijk4poor:feat/at-context-completions
Closed

Add Claude-style @ context completions#2454
kshitijk4poor wants to merge 8 commits into
NousResearch:mainfrom
kshitijk4poor:feat/at-context-completions

Conversation

@kshitijk4poor

@kshitijk4poor kshitijk4poor commented Mar 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add Claude Code-style bare @ context completions in the CLI input box
  • suggest files and folders as Hermes context references (@file:..., @folder:...)
  • include quick static completions for @diff, @staged, @git:, and @url:
  • filter completion candidates through .gitignore and nested .hermesignore files
  • show token estimate hints for file completions instead of file size

Notes

  • this changes completion UX only; submit-time context expansion still uses Hermes' existing explicit reference syntax
  • .hermesignore support now walks ancestor directories and applies patterns relative to the ignore file that defined them

Verification

  • python -m pytest tests/hermes_cli/test_path_completion.py tests/test_context_references.py -q
    • passed (72 passed)

@kshitijk4poor
kshitijk4poor force-pushed the feat/at-context-completions branch from cab712e to 755dcfc Compare March 22, 2026 11:21
- Extract _list_matching_entries helper from duplicated dir-listing logic
- Extract _is_quoted helper for shared quoted-string detection
- Move _PathToken dataclass above SlashCommandCompleter for readability
- Fix double-escape bug in _render_context_reference
- Remove unused imports (field, Path)
- Filter completions through .gitignore (via git check-ignore) and .hermesignore
- Show token estimates (~N tok) in context completion hints instead of file size
- Add @git: and @url: to static completion suggestions
- Add 15 new tests covering all four additions
- Fix regex to support line ranges after quoted paths (@file:"path":10-20)
- Parse line ranges from raw value before decoding quotes
- Filter @file: completions to files only, @folder: to dirs only
- Add tests for all three behaviors
teknium1 added a commit that referenced this pull request Mar 22, 2026
Based on PR #2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #2482. Reimplemented lean — 127 lines vs 715. Same user-facing functionality, dropped the complexity. Thanks for the feature idea and the original implementation!

@teknium1 teknium1 closed this Mar 22, 2026
outsourc-e pushed a commit to outsourc-e/hermes-agent that referenced this pull request Mar 26, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
waefrebeorn pushed a commit to waefrebeorn/slermes that referenced this pull request Jul 2, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
@kshitijk4poor
kshitijk4poor deleted the feat/at-context-completions branch August 5, 2026 07:07
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
Based on PR NousResearch#2454 by @kshitijk4poor (reimplemented lean — 127 lines
vs original 715).

Type @ in the CLI input to get autocomplete suggestions for context
references:
- Static: @diff, @StaGeD, @file:, @folder:, @git:, @url:
- @file:path and @folder:path browse the filesystem
- Bare @ or @partial shows matching files/folders from cwd

Dropped from original: .hermesignore walking, custom shell tokenizer,
PathToken dataclass, fuzzy matching, token estimates. Kept: all
user-facing functionality.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants