https://github.com/asadm/vibemode
Pack your repo into an AI-friendly format and apply AI suggested changes back with ease, all from your terminal.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
Pack your repo into an AI-friendly format and apply AI suggested changes back with ease, all from your terminal.
Basic Info
Statistics
- Stars: 129
- Watchers: 1
- Forks: 2
- Open Issues: 3
- Releases: 0
Metadata Files
readme.md

Pack your entire repository (or selected files) into an AI-friendly format and also apply AI suggested changes back with ease, all from your terminal.
vibemode is a CLI-based code companion to help when you are coding using LLM directly from ChatGPT UI, AI Studio, etc.
- Pack Context: Package selected files from your project (respecting
.gitignore) into a single, structured XML format, perfect for pasting into an AI chat interface. - Apply Changes: Take the diff-like output provided by an AI (in any format it gives it back to you) and apply those changes directly back to your local files using the Gemini API.

🤔 Why
Sure, you can use Cursor or Copilot or Aider but all these tools try to save money by reducing the context instead of embedding files I included as-is.
So I usually resort to using the model directly using the official UI they provide by copying relevant (or all) my code into the chat UI.
The model then suggests changes in chat. I then want to apply the suggested changes back to my repo. vibemode is the missing glue for this workflow!
⚠️ Disclaimer: This is a tool I built for my workflow and I am sharing it with the world. It is not perfect but ofcourse PRs are welcome!
✨ Features
- Interactive Packing: Use glob patterns or type file/directory names with autocomplete to select folders and files to pack.
- .gitignore Aware: Automatically respects rules in your
.gitignorefile. - AI-Friendly Output: Generates a structured XML containing the directory structure and file contents, ready for AI consumption.
- Clipboard Integration: Copies the packed XML directly to your clipboard for easy pasting.
- Automated Patching: Parses AI-generated responses and applies the changes to your local files.
- Error Handling & Retry: Sometimes applying a patch fails partially, let's you retry failed attempts.
- Powered by Gemini: Utilizes Google's Gemini 2.0 Flash model for the "Apply Edits" functionality (requires API key).
🚀 Usage
No installation is required! Run directly using npx:
bash
npx vibemode
This will launch the tool and show the following options:
- Pack files: Let's you pick file/directory to pack. Press Enter when done to copy the "packed" XML to your clipboard, which you paste into your favorite LLM UI.
- Apply edits: Paste the response from your model, which
vibemodeparses using a smaller model and applies to the file.
🔧 Applying Edits (Requires Gemini API Key)
The "Apply edits from paste" feature currently uses the Google Gemini API (specifically the gemini-2.0-flash model) to understand and apply changes described in a specific format within the pasted text.
To use this feature, you MUST:
- Obtain a Gemini API Key: You can get a free API key from Google AI Studio: https://aistudio.google.com/
Set the Environment Variable: Before running
vibemode, set theGEMINI_KEYenvironment variable in your terminal:```bash
On Linux/macOS
export GEMINIKEY='YOURAPIKEYHERE'
On Windows (Command Prompt)
set GEMINIKEY=YOURAPIKEYHERE
On Windows (PowerShell)
$env:GEMINIKEY='YOURAPIKEYHERE' ```
Run Vibemode:
bash npx vibemodeSelect "Apply edits" and paste the AI-generated response containing the SEARCH/REPLACE blocks when prompted. The tool will then attempt to apply these changes to your local files.
License
Apache License 2.0
Happy Vibing!
Owner
- Name: Asad Memon
- Login: asadm
- Kind: user
- Location: San Francisco Bay Area
- Website: https://asadmemon.com
- Repositories: 13
- Profile: https://github.com/asadm
GitHub Events
Total
- Issues event: 3
- Watch event: 113
- Issue comment event: 4
- Public event: 1
- Push event: 17
- Fork event: 1
Last Year
- Issues event: 3
- Watch event: 113
- Issue comment event: 4
- Public event: 1
- Push event: 17
- Fork event: 1
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Asad Memon | a****n@g****m | 54 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 3
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 3
- Total pull request authors: 0
- Average comments per issue: 1.33
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 3
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 3
- Pull request authors: 0
- Average comments per issue: 1.33
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jamierichsmith (1)
- EggzYy (1)
- AndreaOrru (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 734 dependencies
- @babel/cli ^7.21.0 development
- @babel/preset-react ^7.18.6 development
- @vdemedes/prettier-config ^2.0.1 development
- ava ^5.2.0 development
- chalk ^5.2.0 development
- clipboardy ^4.0.0 development
- esbuild ^0.25.2 development
- eslint-config-xo-react ^0.27.0 development
- eslint-plugin-react ^7.32.2 development
- eslint-plugin-react-hooks ^4.6.0 development
- fuzzysort ^3.1.0 development
- glob ^11.0.1 development
- import-jsx ^5.0.0 development
- ink ^5.2.0 development
- ink-select-input ^6.0.0 development
- ink-testing-library ^3.0.0 development
- ink-text-input ^6.0.0 development
- meow ^11.0.0 development
- openai ^4.95.0 development
- prettier ^2.8.7 development
- prop-types ^15.8.1 development
- react ^18.2.0 development
- react-devtools-core ^4.28.5 development
- xo ^0.53.1 development
- zod ^3.24.2 development