frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Zev – Remember (or discover) terminal commands

https://github.com/dtnewman/zev
87•dtnewman•7mo ago

Comments

0x696C6961•7mo ago
I really like how it gives you multiple options to choose from. I've been using https://github.com/simonw/llm-cmd
dtnewman•7mo ago
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.
submeta•7mo ago
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.

afefers•7mo ago
Can you explain how you achieve this?
import•7mo ago
Not op but you need fzf and you need to increase the history size of your bash/ssh whatever

https://github.com/junegunn/fzf

WalterGR•7mo ago
Shells that use readline (such as bash) may have a history search feature built-in and on by default. Try pressing Ctrl-r or Cmd-r and see if a prompt pops up.

You can build your own workflow by hand by doing something like:

1. Turn on your shell’s feature to record command history.

2. Look into its feature set to control things such as how many entries it remembers, whether it remembers duplicate entries, and whether it timestamps each entry. (Don’t forget to restart each instance of your shell, if needed, for changes to take effect.)

3. Install a tool such as fzf that allows interactive filtering of arbitrary text. (Via Homebrew it’s `brew install fzf`. It’s likely something similar for other package managers.) These tools usually: read lines of input, prompt the user to optionally filter but eventually select a line, then just print that line.

4. Write the necessary shell script(s) / functions / aliases to do things like:

+ invoke the fuzzy-finder on the shell’s history file or a modified version of that file (for example, a modified version that excludes bash’s timestamp lines, or that joins them - perhaps in a human-readable format - with the command it timestamps.)

+ process the output of the fuzzy-finder tool (for example, to copy the command to the clipboard, paste it into the shell, or execute it immediately - which will necessitate things like removing any timestamps or additional notation added in the previous step.)

Step 4 can be easy as something approximating (I’m on mobile right now):

   fzf “$HOME/.bash_history” | copy-to-clipboard
porridgeraisin•7mo ago
Fzf installs hooks automatically for ctrl+r and a bunch of other stuff

Search for `fzf --bash`. Note that the version in the ubuntu repos is too old to have this feature (I think)

reddit_clone•7mo ago
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.

aldanor•7mo ago
Fish has built in fuzzy search on ctrl-r as well, with no extra config needed
chrisco23•7mo ago
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'

dtnewman•7mo ago
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`?

dtnewman•7mo ago
btw, feel free to open an issue on github :)
lionkor•7mo ago
Why are you using env variables when you don't pull them primarily from the process env?
dtnewman•7mo ago
I’m debating changing it. I do pull in env vars to use as default values (e.g. you already have an API key set). But I might transition way from env variables.
regnull•7mo ago
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.

arjie•7mo ago
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...

wapxmas•7mo ago
how do I install it with pip? It requires to be in virtual environment. (
trallnag•7mo ago
Use something like pipx or uv
dtnewman•7mo ago
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.
AvieDeckard•7mo ago
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.
rco8786•7mo ago
Kind of a good example of how AI gets it "almost" right.
imzadi•7mo ago
Hi Zev!
latchkey•7mo ago
Why not https://docs.atuin.sh/?
dtnewman•7mo ago
different use case. atuin is for past commands, whereas this uses an LLM to give you options for commands.
latchkey•7mo ago
Feels like this should be an extension to atuin instead of a separate tool.
anamexis•7mo ago
Why? Besides both involving terminal commands, they serve very different purposes.
latchkey•7mo ago
atuin is a collection of the past, which can be training data for a collection in the future. If I'm asking AI to essentially generate commands, my previous inputs ideally would be part of the basis.
arp242•7mo ago
Named after Zev from the film Remember? A few years back I wrote a Vim plugin to remember things with the same name :-)
dtnewman•7mo ago
ha, no, just a coincidence. Named after someone i know named Zev. But chose it because it's short and not taken on Pypi
CGamesPlay•7mo ago
You may be interested in copying some of the usage patterns from my similar project: https://github.com/CGamesPlay/llm-cmd-comp

Instead of being a separate command, I released a set of key bindings you can push that start the LLM prompt with your current command line, and if you successfully accept the suggestion, replace your command line with the result, bypassing the manual clipboard step, and making it so that the result goes into your shell history as a normal command.

tzury•7mo ago
Newman!
badmonster•7mo ago
Since it's generating terminal commands dynamically, what safeguards (if any) are in place to avoid generating destructive or insecure commands (like rm -rf /, etc.)?
sathishvj•7mo ago
Yes, this is a concern. When I built something similar (gencmd.com), I avoided the auto-run option even though it was easy to implement. imho, it's better to have a human in the loop for these.
dtnewman•7mo ago
1) When you are selecting a command you get a little description at the bottom telling you what it does.

2) this doesn’t run anything. It goes to your clipboard and you have to run it yourself

3) this a good callout… what do u think? I’m thinking maybe ask the models to return a Boolean is_dangerous plus a small explanation and then I can display dangerous commands in red and show the warning when you select one.

badmonster•7mo ago
sounds like a solid plan
dtnewman•7mo ago
Just fyi, this is now implemented
sathishvj•7mo ago
Nice! Little plug for what I did too, in a similar vein - it has a web version https://gencmd.com/ and also a cmd line version.
Bishonen88•7mo ago
https://docs.aws.amazon.com/codewhisperer/latest/userguide/c...

Looks like cw from aws

Show HN: Gemini Pro 3 hallucinates the HN front page 10 years from now

https://dosaygo-studio.github.io/hn-front-page-2035/news
2214•keepamovin•14h ago•702 comments

The end of the kernel Rust experiment

https://lwn.net/Articles/1049831/
160•rascul•2h ago•72 comments

PeerTube is recognized as a digital public good by Digital Public Goods Alliance

https://www.digitalpublicgoods.net/r/peertube
458•fsflover•12h ago•80 comments

'Source available' is not open source (and that's okay)

https://dri.es/source-available-is-not-open-source-and-that-is-okay
22•geerlingguy•2h ago•12 comments

Django: what’s new in 6.0

https://adamj.eu/tech/2025/12/03/django-whats-new-6.0/
205•rbanffy•9h ago•48 comments

Mistral releases Devstral2 and Mistral Vibe CLI

https://mistral.ai/news/devstral-2-vibe-cli
536•pember•14h ago•270 comments

If you're going to vibe code, why not do it in C?

https://stephenramsay.net/posts/vibe-coding.html
386•sramsay•12h ago•415 comments

When a video codec wins an Emmy

https://blog.mozilla.org/en/mozilla/av1-video-codec-wins-emmy/
50•todsacerdoti•4d ago•6 comments

Handsdown one of the coolest 3D websites

https://bruno-simon.com/
483•razzmataks•13h ago•115 comments

Post-transformer inference: 224× compression of Llama-70B with improved accuracy

https://zenodo.org/records/17873275
45•anima-core•4h ago•10 comments

Pebble Index 01 – External memory for your brain

https://repebble.com/blog/meet-pebble-index-01-external-memory-for-your-brain
445•freshrap6•14h ago•432 comments

Italy's longest-serving barista reflects on six decades behind the counter

https://www.reuters.com/lifestyle/culture-current/anna-possi-six-decades-behind-counter-italys-ba...
112•NaOH•5d ago•44 comments

10 Years of Let's Encrypt

https://letsencrypt.org/2025/12/09/10-years
554•SGran•10h ago•246 comments

Writing our own Cheat Engine in Rust

https://lonami.dev/blog/woce-1/
37•hu3•4d ago•5 comments

Donating the Model Context Protocol and establishing the Agentic AI Foundation

https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agenti...
184•meetpateltech•12h ago•85 comments

The stack circuitry of the Intel 8087 floating point chip, reverse-engineered

https://www.righto.com/2025/12/8087-stack-circuitry.html
95•elpocko•11h ago•39 comments

So you want to speak at software conferences?

https://dylanbeattie.net/2025/12/08/so-you-want-to-speak-at-software-conferences.html
143•speckx•11h ago•67 comments

Qt, Linux and everything: Debugging Qt WebAssembly

http://qtandeverything.blogspot.com/2025/12/debugging-qt-webassembly-dwarf.html
55•speckx•8h ago•12 comments

Linux CVEs, more than you ever wanted to know

http://www.kroah.com/log/blog/2025/12/08/linux-cves-more-than-you-ever-wanted-to-know/
39•voxadam•6h ago•27 comments

Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

https://github.com/KaijuEngine/kaiju
165•discomrobertul8•14h ago•82 comments

Show all your application error using Cloudflare Error Page

https://github.com/donlon/cloudflare-error-page
11•sawirricardo•3h ago•4 comments

Operando interlayer expansion of curved graphene for dense supercapacitors

https://www.nature.com/articles/s41467-025-63485-0
17•westurner•5d ago•0 comments

Agentic AI Foundation

https://block.xyz/inside/block-anthropic-and-openai-launch-the-agentic-ai-foundation
89•thinkingkong•9h ago•21 comments

A supersonic engine core makes the perfect power turbine

https://boomsupersonic.com/flyby/ai-needs-more-power-than-the-grid-can-deliver-supersonic-tech-ca...
85•simonebrunozzi•13h ago•143 comments

Distributed ID Formats Are Architectural Commitments, Not Just Data Types

https://piljoong.dev/posts/distributed-id-generation-complicated/
10•mnahkies•3d ago•2 comments

OpenEvolve: Teaching LLMs to Discover Algorithms Through Evolution

https://algorithmicsuperintelligence.ai/blog/openevolve-overview/index.html
27•codelion•6h ago•7 comments

30 Year Anniversary of WarCraft II: Tides of Darkness

https://www.jorsys.org/archive/december_2025.html#newsitem_2025-12-09T07:42:19Z
203•sjoblomj•20h ago•141 comments

Are We over the "Jaws Effect?"

https://nautil.us/are-we-finally-over-the-jaws-effect-1253001/
5•fleahunter•4d ago•1 comments

Apple's slow AI pace becomes a strength as market grows weary of spending

https://finance.yahoo.com/news/apple-slow-ai-pace-becomes-104658095.html
284•bgwalter•14h ago•346 comments

Clearspace (YC W23) Is Hiring a Founding Designer

https://www.ycombinator.com/companies/clearspace/jobs/yamWTLr-founding-designer-at-clearspace
1•roycebranning•12h ago