Skip to content

Latest commit

 

History

History
77 lines (49 loc) · 3.2 KB

README.md

File metadata and controls

77 lines (49 loc) · 3.2 KB

⌘ Commander Completion Carapace ⌘

Stars NPM Version License PRs Welcome

Effortlessly add intelligent autocomplete support to your Commander.js CLI app using Carapace. It works with a wide range of shells, making your CLI tools more intuitive and user-friendly.

Show your ❤️ and support by starring this project and following the author, Guten Ye!

screenrecording

🌟 Features

  • Multiple Shells Support: Works with Bash, Zsh, Fish, Nushell, and more.
  • 🚄 Blazing Fast Completion: Experience instantaneous completion with no delays.
  • 🔗 Carapace Integration: Unlock all the powerful features of Carapace, including advanced shell completions.
  • 🧑‍💻 Effortless Integration: Easily add completion support to your Commander.js based CLI app.

🚀 Getting Started

1️⃣ Install

First, make sure Carapace is installed, as it powers the completion functionality:

bun add @gutenye/commander-completion-carapace commander

2️⃣ Write Completion Code

Now, integrate completion support into your Commander.js application by adding the following code:

import { program, Option } from '@gutenye/commander-completion-carapace'

program
  .name('hello')
  .enableCompletion()

program.command('cmd1 [...files]')
  .description('Description')
  .option('--option1', 'Description')
  .completion({   // pass to carapace 
    positonalany: ['$files'] // dynamic completion
  })
  .action(() => {})

await program.installCompletion() // Creates hello.yaml Carapace spec file

program.parse()

3️⃣ Use the Completion

hello      # Will create the Carapace spec file the first time it runs
hello<Tab> # Press Tab to see completions for commands and options

🤝 Contribute

We welcome contributions! Whether it’s bug reports, feature suggestions, or pull requests, your involvement makes this project better.

How to Contribute:

  1. Fork the Repository
  2. Open a Pull Request on Github

Thank you for using Commander Completion Carapace! ✨ If you found it helpful, please ⭐️ star the project ️️⭐ on GitHub. If you encounter any issues, feel free to report an issue on Github.

Special thanks to all the contributors:

⬆ Back to top ⬆