HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
atuinsh
atuin
Rust2023–2026
atuinsh / atuin

atuin

✨ Making your shell magical

35Distinct people
35Mentions
0Explicit recommenders
32.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

✨ Making your shell magical

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

Atuin Threads: All your agent sessions on every machine direct repository linkDebated

The discussion centers on Atuin Threads, a feature for syncing and searching AI agent sessions across machines, which users praise for solving context loss but debate regarding security risks like credential leakage. Competing interpretations arise between those who view the centralized sync as a necessary convenience and those who prefer local-only or self-hosted solutions to maintain strict isolation.

83 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year35 dated mentions

Observed mentions: 2023-08-13 21:41:59 UTC to 2026-07-16 21:14:56 UTC.

0369122023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC707
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC1129
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC10010
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC707

What Hacker News says

35 sources
> Are you doing this for client-facing production code? What's "this"? We're talking about multiple things here. But presumably yes: I'm working through agents, and all I do is read and prompt. I don't manually write code except Markdown and occasionally Nix code because it's sufficiently high-level, and I rarely read the Rust code. The Nix code is based on templates I wrote by hand, and the Rust code is based on crate selection and some loose principles I've derived from years of programming Rust by hand. > It seems you believe painting over APIs with some amount of documentation will guarantee the implementation is correct and well designed. Am I misreading that? I don't believe that, you're misreading. I'm saying: - Making and documenting APIs well is just as necessary as before I wrote to files. - Correctness is achieved through s
Read the rest
trong types and extensive testing of all kinds. > Do you have tests? How do you know they’re correct if you don’t read the code? Moreover, how do know if their coverage is sufficient if you don’t read the code? There are different tests, and I know they work for different reasons. I'll list a few kinds that I've found actually valuable in the recent past: Manual user tests: While expensive, they're most truthful in revealing bugs and confirming if they still exist. We do this by dogfooding our own product, and by running manual user tests before major deployments. User tests help uncover problems like delays that don't appear as errors, but can be major UX bugs (like waiting ten seconds for the effect of a button press). TDD regression tests: A user experiences an error in the application, this gets reported, the agent analyses the code and writes one or more unit tests to confirm the problem, and writes a fix to see the light go green. I know this test works because it fails first. There's an odd chance the agent either uncovered a different bug, or wrote a test that fails synthetically. I haven't tried the latter, but I've tried many times that it wrote "a test" that passes but the app still crashes. So TDD order matters. And I've tried that it found several more bugs by analysing the code. (Most recent example: https://github.com/atuinsh/atuin/issues/3603 ) Another example of a TDD regression test is: Some async code prematurely exited, I scanned for the class of bugs and found one other case and fixed it, TDD. There's a very simple consideration to make that could be expressed as a linter rule, but is more easily expressed as a single sentence in CLAUDE.md, since it will appear again (it's a pattern I and former colleagues have made several times). End-to-end integration tests: Wire up all parts of the system in either a semi-authentic (say, docker compose-based with some mocks) or in a fully authentic staging environment (say, Kubernetes); I do both, and it catches both bugs and performance regressions by simulating real workloads. I haven't automated the performance regression testing, only workload simulation, and then I assess the metrics myself. Algorithmic pareto-optimality: I have an algorithm that can be measured in number of steps by measure of API calls, and number of successful calls; correctness would be "the algorithm gives the same result", and pareto-optimality would be "it doesn't use more steps in the refactored version". Computing time isn't really the cost here, the cumulative size of API payloads are. The API part can actually be mocked, or "made golden" (I've just now learned that it's called a "characterization test", https://en.wikipedia.org/wiki/Characterization_test, but I always called it a golden test from having read that.) "Full coverage unit tests": I don't actually know how valuable these are. But for example, I went with "Find all functions that return Result<T> or Option<T> and test all their edge cases." Some ~87 functions, some ~150 tests. No failures. But I'd be surprised, because the type of mistake these tests generally fix for me, as a human, are typos and copy-paste errors, and big models generally don't make those. > You say you still read code when code is « algorithmically hard ». How do you define that? I don't have a good definition. I recently deployed a service that runs something my colleagues call "the algorithm". It's some progressive audio transcription thing. My colleagues feel uncomfortable going live with something that appears to work that nobody read, so I read what was made. I think the value of reading algorithmically hard code is not to assess correctness, but to regain cognitive debt in case something breaks and you don't know how it's made. I've consulted for people whose main programmer left and they were stuck with a machine they couldn't comprehend, start, or start to comprehend. Point being: Code review isn't ideal for catching hard logical bugs, it's for understanding code so that you may eventually understand hard logical bugs when they surface. > Do you refactor code or is that not needed anymore? The need for software architecting and refactoring are exactly the same. Only maybe more and sooner because the amount of code increases. > I don’t understand your answer to the question of why anyone would publish a library if no one reads code anymore. « For the exact same reasons as before ». How so? This isn’t making sense. I don't understand why it doesn't make sense. Agents will read code. Humans do occasionally read some code. But the value of a well-polished, tested library is not just for humans to read. A good library will make your code better, because vibing on the spot delivers less guarantee that it's good. You'll miss some effort spent on proper data modelling and edge case and error handling. Sometimes that's the right call. Say you build a parser for a small language. Using a parser combinator library, you get nice error messages and some very non-trivial thoughts on resuming parsing from a failed state. A vibed parser will give you neither of those. There are some points related to supply-chain minimization. But it's the exact same tradeoff, where the choice-points are pushed around.
In The zero-cost fallacy: open-source software in the agentic era
https://github.com/atuinsh/atuin for fuzzy shell history (ctrl+r) https://github.com/sharkdp/bat (nice coloured cat replacement) https://github.com/abiosoft/colima (so I don't need docker desktop) https://github.com/duckdb/duckdb (performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other. https://github.com/eradman/entr (rerun commands automatically when provided files change) (useful for rerunning test commands automatically once you save the file you're editing. https://github.com/martinvonz/jj and https://github.com/idursun/jjui (Jujutsu VCS, been using it for three months and I really enjoy it) https://github.com/jesseduffield/lazydocker (managing containers, images, volumes easily) https://github.com/jesseduffield/lazygit (best tui for git and outside niche git commands, t
Read the rest
he fastest way to use git.) https://github.com/jdx/mise (fast asdf, direnv, and task runner replacement) (install pretty much version of tool, language, env vars in a per directory level. (Or global if you want)) https://github.com/ajeetdsouza/zoxide (intelligent cd to move between directories incredibly quickly)
In Ask HN: What dev tools do you rely on that nobody talks about?
I looked at the repo and couldn’t even find an example, so it can’t be that many of their commits. But also: this is ridiculous. Whether the commit appears as done by Claude or not is a setting you can change. If they turned it off, you’d never even notice. These are great developers and they’ve built an incredible tool. I use it a hundred times a day. It is very odd and dogmatic to think that because you saw a commit authored by Claude, whatever skills and qualities let them build something so good are now being thrown out. Edit: I found one: https://github.com/atuinsh/atuin/pull/3231 Please, tell me where the bad code is in that PR. I see 200 lines of extremely straightforward Rust and 500 lines of tests for it.
In Atuin v18.13 – better search, a PTY proxy, and AI for your shell
> The network aspects of Atuin also gave me the heebie-jeebies. Reasonable people can differ on such matters. The networking stuff can be fully compiled out of Atuin. The client and sync feature flags[1] control this, and it's fairly trivial to confirm that the networking crate (reqwest) is only enabled when the sync feature is enabled.[2] Atuin can also be configured to only talk to your own sync server rather than the Atuin run server, and the history is e2e encrypted, so :shrug:. There's enough good engineering there that I'd not put it as particularly high on my list of security risks. [1]: https://github.com/atuinsh/atuin/blob/e8df3d168e7fb9d6f99d97... [2]: https://github.com/atuinsh/atuin/blob/e8df3d168e7fb9d6f99d97...
In Better Shell History Search

Showing the 15 most recent of 35 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.