Thanks! My main issue is that i'm lazy and although i often know approximately what i want i don't want to type a lot of words to describe it exactly. For example writing `zev 'show disk usage'` is somewhat ambiguous. Am i talking about my current folder or the harddrive? My idea was that rather than typing out what I want explicitly, i want to type the minimum amount and then just select the best of available options.
I don't like most of these commands because they just execute. This one is nice because it will be in your history. The current trick I use is to use copilot.vim at the command line. It naturally fits into my flow.
Recently some of my friends reported that it just wants to do comments and I've noticed that it actually biases towards that nowadays, so I start it with something to get it kicked off.
I've been managing to try to figure out what in the prompt makes it like that, but for the moment that little workaround gives me both the comment and the command in my history so it's easier to r-i-search for it.
Nice! I use a combination of an endless bash (zsh) history with timestamps that I navigate via fzf and ctr+r and comments I occasionally add to commands via # at the end followed by my annotation so that I can rediscover the command.
I do this ever since I switched to a Mac in 2015 and my history has over 60,000 lines. So that’s basically my knowledge base :)
Exactly my setup including the #tag's. It is my second brain.
What I love about this is the fzf's fuzzy narrow down. You don't have to start at the beginning of command, you don't have to worry about exact spelling. Just a few snippets you remember, it will narrow it down really fast.
I use the same fuzzy search narrow downs in Emacs.
Your gif in your README features a prompt asking to "show all files in this directory" but the 'ls -lh' returned and selected in the demo gif does not show all files, just the ones that aren't hidden. I'd have chosen a more accurate interaction for the demo.
I'm trying to get this to work with ollama. I'm on Arch Linux, fish shell, new to ollama, and only very rarely used pipx. I get:
raise ValueError("OPENAI_BASE_URL and OPENAI_API_KEY must be set. Try running `zev --setup`.")
ValueError: OPENAI_BASE_URL and OPENAI_API_KEY must be set. Try running `zev --setup`
even when I run (for example) set -x ZEV_USE_OLLAMA 1; zev 'show all files and all permissions'
creator here. It pulls env variables from a file in your appstorage directory. I need to change this in a future release to make it cleaner, since I don't think i like it intermingling with env variables.
it should run outside of a virtual env and is intended to be installed locally. That said, it currently has too many dependencies (IMO) and i'm working on cutting them down to avoid conflicts.
It uses locally hosted (or remote) LLMs to create and execute shell commands that you describe. You can go as far as writing "shell scripts" in natural language.
I really like how it gives you multiple options to choose from. I've been using https://github.com/simonw/llm-cmd
Thanks! My main issue is that i'm lazy and although i often know approximately what i want i don't want to type a lot of words to describe it exactly. For example writing `zev 'show disk usage'` is somewhat ambiguous. Am i talking about my current folder or the harddrive? My idea was that rather than typing out what I want explicitly, i want to type the minimum amount and then just select the best of available options.
I don't like most of these commands because they just execute. This one is nice because it will be in your history. The current trick I use is to use copilot.vim at the command line. It naturally fits into my flow.
Recently some of my friends reported that it just wants to do comments and I've noticed that it actually biases towards that nowadays, so I start it with something to get it kicked off.
I've been managing to try to figure out what in the prompt makes it like that, but for the moment that little workaround gives me both the comment and the command in my history so it's easier to r-i-search for it.
https://x.com/arjie/status/1575201117595926530
You just set up copilot for neovim normally and set it as your EDITOR. https://wiki.roshangeorge.dev/index.php/AI_Completion_In_The...
Nice! I use a combination of an endless bash (zsh) history with timestamps that I navigate via fzf and ctr+r and comments I occasionally add to commands via # at the end followed by my annotation so that I can rediscover the command.
I do this ever since I switched to a Mac in 2015 and my history has over 60,000 lines. So that’s basically my knowledge base :)
But your project looks nice. Will check out.
Exactly my setup including the #tag's. It is my second brain.
What I love about this is the fzf's fuzzy narrow down. You don't have to start at the beginning of command, you don't have to worry about exact spelling. Just a few snippets you remember, it will narrow it down really fast.
I use the same fuzzy search narrow downs in Emacs.
I miss it everywhere else.
Can you explain how you achieve this?
Not op but you need fzf and you need to increase the history size of your bash/ssh whatever
https://github.com/junegunn/fzf
Your gif in your README features a prompt asking to "show all files in this directory" but the 'ls -lh' returned and selected in the demo gif does not show all files, just the ones that aren't hidden. I'd have chosen a more accurate interaction for the demo.
Named after Zev from the film Remember? A few years back I wrote a Vim plugin to remember things with the same name :-)
ha, no, just a coincidence. Named after someone i know named Zev. But chose it because it's short and not taken on Pypi
Why not https://docs.atuin.sh/?
different use case. atuin is for past commands, whereas this uses an LLM to give you options for commands.
Feels like this should be an extension to atuin instead of a separate tool.
Why? Besides both involving terminal commands, they serve very different purposes.
I'm trying to get this to work with ollama. I'm on Arch Linux, fish shell, new to ollama, and only very rarely used pipx. I get:
raise ValueError("OPENAI_BASE_URL and OPENAI_API_KEY must be set. Try running `zev --setup`.") ValueError: OPENAI_BASE_URL and OPENAI_API_KEY must be set. Try running `zev --setup`
even when I run (for example) set -x ZEV_USE_OLLAMA 1; zev 'show all files and all permissions'
creator here. It pulls env variables from a file in your appstorage directory. I need to change this in a future release to make it cleaner, since I don't think i like it intermingling with env variables.
That said, did you run `zev --setup`?
btw, feel free to open an issue on github :)
how do I install it with pip? It requires to be in virtual environment. (
it should run outside of a virtual env and is intended to be installed locally. That said, it currently has too many dependencies (IMO) and i'm working on cutting them down to avoid conflicts.
Use something like pipx or uv
Hi Zev!
Somewhat related, here's a little project I've done with LLM: https://github.com/regnull/how.sh
It uses locally hosted (or remote) LLMs to create and execute shell commands that you describe. You can go as far as writing "shell scripts" in natural language.