makes unix workflow faster
easily add scripts/modules
- git clone this into your favorite location for scripts
- run
python3 update-all.pyto add aliases to bashrc - rename the .env-example in ./ask-app and ./ai-tools/mcoder-beta and mcoder to .env and fill it out (if you want)
- run
pip install -r requirements.txtto install requirements - install ffmpeg
- write the code
- add an alias in alias_config.py
- run
python3 update-all.pyto update/add new aliases in bashrc
apm: creates an actions-per-minute counter and live graph in the taskbar. by default, it shows how many clicks + key presses you make during each 1min window.
todos: Typing this in your codebase will tell you exactly where todo, assumption, and optimization comments are in your code.- To change caterogies and ignored files/dirs, edit code-tools/todos.py. By default this ignores .venv and whatnot
ask {prompt}: make gpt4o output an answer in as few chars as possiblerunit: runs the previousaskoutput as a command in the current working dir
Multicoder allows you to quickly create/edit multi-file projects with LLMs, all inside your terminal
It has (simple) local version control and frictionless commands to manage the state (for backups and managing multiple generations)
It also has cost tracking so you know how much you're spending
It creates a workspace for each project, and stores all progress in there, rather than in memory, so you can easily pickup where you left off on multiple projects.
(use mcb for beta - currently uses diffs instead of writing out full files)
mc get [generation count] [glob match pattern] [-r]: Have an LLM produce [response generation number] instances of changes to your project. Opens an nvim buffer where you type in your prompt (instructions OR paste an error in) (i to start typing, esc->:wq to save and submit). A system prompt, along with any files matching the glob pattern (-r for recursive) are automatically sent off with your prompt.
-
mc write list: Shows available LLM completions you can write -
mc write [n]: Automatically creates/updates all files from an LLM completion
-
mc ignore 'pattern': Always ignores files with this pattern (for this workspace). Config is in .mcoder-workspace/.mcignore. -
mc rmignore 'pattern': Removes pattern from .mcignore. -
mc lsignores: Lists all patterns in .mcignore.
mc undo: Undoes writing a completionmc rollback: rolls back to a previous version (may break bc i havent tested it enough)mc backup: backs up the current dir to a .zip file in the workspace folder (may break, seemed to work ok but needs more thorough testing)
the idea is that you can use some of the ideas in this paper https://eureka-research.github.io/ to exponentially increase the odds of generating what you want.
additionally, LLMs are good at generating complex programs if you get there one step at a time. this program helps automate most of the friction in doing that.
to set it up, rename .env-example to .env and add relevant API keys in
gmfp [filename pattern match]: Get Multi-File Prompt turns multiple files into a prompt and auto copies to clipboard. e.g.gmfp *turns all files in cwd into 1 promptgcb [n]: Get Code Block gets the nth code block of a prompt in the clipboard. Default n is -1 (last codeblock)mkfiles [folder]: If the clipboard contains an LLM response w multiple files, it creates them all, including dirs
togglesite [domain or alias]: blocks or unblocks a site in /etc/hosts, then restarts necessary services
update-aliases: updates aliases to modules. use after adding a new module. must manualy runpython3 update-aliases.pyon setup before you can use this.
-
videdit: opens a simple video editor that cuts segments out of your videos. run it and go to http://127.0.0.1:5000.
-
zipmedia [media1.format] [media2.format] [output file name.output_format]: returns a side-by-side of media1 and media2. works with video, images, or a combination of both. pads to the longest vid. requires ffmpeg.














