This is a submission for the GitHub Copilot CLI Challenge
What I Built
I built Smart Package Pilot a terminal based CLI tool designed to streamline the process of updating legacy dependencies.
Updating dependencies in a project can involve significant risk. Developers often avoid bumping major versions (e.g. v4 to v5) because they fear breaking changes. Standard AI prompts like "How to update axios" often yield generic results because the LLM lacks knowledge of the specific version constraints of the local environment.
Smart Package Pilot solves this by automating the research phase
-
Scan: It parses the local
package.json - Analyze: It queries the NPM Registry in real-time to fetch the latest metadata and compares it against installed versions
- Context Engineering: It generates a precise, version-specific prompt for GitHub Copilot
Instead of generic advice, the tool constructs a prompt containing the exact version diffs (e.g. Current: 0.21.1 -> Target: 1.6.0) and specific requests for a Migration Strategy and Breaking Changes List. By pressing C, the developer copies this perfect context to the clipboard, allowing Copilot to provide safe, working code.
Demo
My Experience with GitHub Copilot CLI
Building a CLI tool with a React-based UI (using the Ink library) is unique because you are rendering to stdout instead of the traditional DOM. Since this was my first time working with Ink, GitHub Copilot was a massive accelerator.
1. Accelerating Ink Library Adoption
Although I had never used Ink before, Copilot allowed me to intuitively build layouts using Flexbox in a terminal environment right from the start. It helped me grasp the library's mechanics instantly, significantly accelerating my understanding of the tool
2. Crafting the Perfect Prompt
The core feature of my tool is generating the perfect context for the AI. I used Copilot to help me design that very prompt. I experimented by asking Copilot: "What specific information do you need to safely upgrade a dependency?". Based on its suggestions, I refined the final output of my tool to ensure it provides the exact data (breaking changes, version diffs) that the LLM needs to succeed.
GitHub Repository: https://github.com/SkoczekBoczek/smart-package

Top comments (0)