feat(shell-plugin): add Fish shell plugin port of ZSH plugin#2921
Closed
FabioLissi wants to merge 1 commit intotailcallhq:mainfrom
Closed
feat(shell-plugin): add Fish shell plugin port of ZSH plugin#2921FabioLissi wants to merge 1 commit intotailcallhq:mainfrom
FabioLissi wants to merge 1 commit intotailcallhq:mainfrom
Conversation
Adds a complete Fish shell plugin under shell-plugin/fish/ that provides the same UX as the existing ZSH plugin for Fish users. Features: - :command dispatch with 40+ commands via Enter key override - fzf-powered Tab completion for @file paths and :command names - Right prompt showing active agent, model, conversation, and reasoning effort - Session overrides (model, provider, reasoning effort) without editing config - Full tab completion for the forge CLI binary Structured as a Fisher-compatible plugin (fisher install FabioLissi/forge-fish). Also available standalone via the Fisher plugin registry at: https://github.com/FabioLissi/forge-fish
|
Fabio Lissi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Contributor
|
@FabioLissi Let’s continue the discussion on #2779. We’re currently thinking about moving extensions to the community, and we’d love to collaborate with you on that PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a complete Fish shell plugin port of the existing ZSH plugin, giving Fish users the same
:commandshortcuts, fzf-powered completions, and right-prompt integration available to ZSH users today.Context
Fish is a popular shell with a significant user base, but the Forge shell plugin has only shipped as a ZSH plugin. Fish users who want
:commanddispatch,@filetab completion, and right-prompt session info currently have no supported path to get there. This PR brings the Fish experience to parity with ZSH by porting all the existing ZSH plugin functionality to native Fish.The plugin is structured as a Fisher-compatible plugin and is already published and tested at FabioLissi/forge-fish.
Changes
shell-plugin/fish/alongside the existingshell-plugin/ZSH plugin:commandhandlers to Fish functions@fileand:commandTab completion using fzfforgeCLI binary (subcommands, flags)README.mdcovering installation, usage, and plugin structureKey Implementation Details
Fish doesn't use
bindkeyor ZLE like ZSH — instead the Enter key is intercepted viafish_user_key_bindingsand a custom_forge_accept_linefunction that checks whether the buffer starts with:before handing control back to Fish. All:commandhandlers are standalone_forge_action_*.fishfunctions dispatched by a central router. The right prompt hooks intofish_right_promptwithout clobbering any existing right prompt output.Use Cases
Testing
Alternatively, clone this repo and manually copy
shell-plugin/fish/into~/.config/fish/(completions → completions, conf.d → conf.d, functions → functions).Links