im5tu/dotnet-skills · Archived

dotnet-enable-autocomplete

Enables tab autocomplete for the dotnet CLI. Use when the user wants to set up shell completion for dotnet commands.

First seen Feb 4, 2026

Installation

$ npx skills add im5tu/dotnet-skills --skill dotnet-enable-autocomplete

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from im5tu/dotnet-skills.

npx skills add im5tu/dotnet-skills

Browse all from im5tu/dotnet-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License MIT
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseMIT
Allowed toolsBash(dotnet:*) Read AskUserQuestion
More metadata
author
Im5tu
version
1.0
repositoryUrl
https://github.com/im5tu/dotnet-skills

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,896 B
  • docs SUMMARY.md 150 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

.NET CLI Tab Completion

Enable tab autocomplete for the dotnet CLI in your preferred shell.

Steps

  1. Determine .NET version (CRITICAL - commands differ by version)

``bash dotnet sdk check ` - Parse output to identify installed SDK versions - .NET 10+: Uses dotnet completions script <shell> (native completions) - Pre-.NET 10: Uses dotnet complete --position` (dynamic completions)

  1. Ask user which shells they use, allowing multi-select:

- PowerShell - bash - zsh - fish - nushell

For each user shell:

  1. Detect profile file location based on shell:
Shell Profile Path
PowerShell $PROFILE
bash ~/.bashrc
zsh ~/.zshrc
fish ~/.config/fish/config.fish
nushell ~/.config/nushell/config.nu
  1. Check if completion already configured

- Read the profile file - Search for existing dotnet completion setup - If found, inform user and ask if they want to replace it

  1. Append completion script to profile based on .NET version and shell
  1. Inform user to restart their shell or source the profile

Completion Scripts

.NET 10+ (Native Completions)

PowerShell:

dotnet completions script pwsh | Out-String | Invoke-Expression

bash:

eval "$(dotnet completions script bash)"

zsh:

eval "$(dotnet completions script zsh)"

fish:

dotnet completions script fish | source

nushell: See .NET CLI docs for config.nu setup.

Pre-.NET 10 (Dynamic Completions)

PowerShell:

# dotnet CLI tab completion
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)
    dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
        [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
    }
}

bash:

# dotnet CLI tab completion
_dotnet_bash_complete() {
    local cur="${COMP_WORDS[COMP_CWORD]}"
    local IFS=$'\n'
    local candidates
    read -d '' -ra candidates < <(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}" 2>/dev/null)
    read -d '' -ra COMPREPLY < <(compgen -W "${candidates[*]}" -- "$cur")
}
complete -f -F _dotnet_bash_complete dotnet

zsh:

# dotnet CLI tab completion
_dotnet_zsh_complete() {
    local completions=("$(dotnet complete --position ${CURSOR} "${BUFFER}" 2>/dev/null)")
    reply=("${(ps:\n:)completions}")
}
compctl -K _dotnet_zsh_complete dotnet

fish:

# dotnet CLI tab completion
complete -f -c dotnet -a "(dotnet complete --position (commandline -cp) (commandline -op))"

nushell:

# Add to external_completer in config.nu
let external_completer = {|spans|
    match $spans.0 {
        dotnet => (
            dotnet complete (
                $spans | skip 1 | str join " "
            ) | lines
        )
    }
}

Error Handling

  • If dotnet sdk check fails: Ensure .NET SDK is installed
  • If profile file doesn't exist: Create it with the completion script
  • If profile file is read-only: Warn user and provide script to add manually

Notes

  • .NET 10+ provides native dotnet completions command
  • Pre-.NET 10 uses dotnet complete with dynamic scripts
  • Always back up profile before modifying
  • User must restart shell or source profile for changes to take effect