{"slug": "clippy", "name": "Clippy", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 3, "commenters": 4, "warners": 0, "score": 2.981, "rising": 0.35, "first": "2026-02-07", "latest": "2026-09-13", "why": "I would strongly recommend turning on most of clippy's lints if you want to learn rust.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I would strongly recommend turning on most of clippy's lints if you want to learn rust.", "icon": true, "domain": null, "github_repo": "github.com/rust-lang/rust-clippy", "official_url": "https://github.com/neilberkman/clippy", "pricing": "", "aliases": ["Clippy"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 794885232, "item_id": 49680327, "url": "https://news.ycombinator.com/item?id=49680327", "by": "throwawayqqq11", "date": "2026-09-13", "stance": "recommend", "quote": "Having countless [0] very restrictive guard rails like deny(clippy::float_arithmetic) for your usecases codifies intent about project structure", "excerpt": "I agree. The friction is not an issue of the language or of toxic communities but the culture of how software is crafted and passed on. I use rust for hobby projects and besides the savety and soundness decisions, i love the tooling. Having countless [0] very restrictive guard rails like deny(clippy::float_arithmetic) for your usecases codifies intent about project structure in a way i have seen nowhere else. Not eng", "context": "uses Rust for hobby projects", "use_case": "Rust linting guard rails", "switched_from": "", "story": "From Git to Fossil (2025)"}, {"id": 767338016, "item_id": 47958626, "url": "https://news.ycombinator.com/item?id=47958626", "by": "stop50", "date": "2026-04-29", "stance": "recommend", "quote": "I made myself pre commit hooks for running clippy nightly and deploying my standard lints", "excerpt": "Thats what i implemented for myself. I made myself pre commit hooks for running clippy nightly and deploying my standard lints(clippy and non-clippy). Thanks to jq-lang and the jq-wrapper tomlq it can even work around the lints/workspace.lints difference with little problems. For myself i have forbidden unwrap/expect, since this can lead to panics. For cases where an unwrap IS unavoidable, i use unsafe {unwrap_unchec", "context": "Rust developer", "use_case": "Rust linting", "switched_from": "", "story": "Your Rust Clippy Config Should Be Stricter"}, {"id": 750843792, "item_id": 46927737, "url": "https://news.ycombinator.com/item?id=46927737", "by": "lunar_mycroft", "date": "2026-02-07", "stance": "recommend", "quote": "I would strongly recommend turning on most of clippy's lints if you want to learn rust.", "excerpt": "To pick a few (from the server crate, because that's where I looked): - The StoreError type is stringly typed and generally badly thought out. Depending on what they actually want to do, they should either add more variants to StoreError for the difference failure cases, replaces the strings with a sub-types (probably enums) to do the same, or write an type erased error similar to (or wrapping) the ones provided by a", "context": "", "use_case": "linting Rust code", "switched_from": "", "story": "Software Factories and the Agentic Moment"}]}], "caveats": [], "who": [{"by": "throwawayqqq11", "context": "uses Rust for hobby projects", "url": "https://news.ycombinator.com/item?id=49680327", "date": "2026-09-13"}, {"by": "stop50", "context": "Rust developer", "url": "https://news.ycombinator.com/item?id=47958626", "date": "2026-04-29"}], "tags": [], "use_cases": ["rust linting", "rust linting guard rails", "linting rust code"], "compared": [], "makers": [{"id": 750107072, "item_id": 46881692, "url": "https://news.ycombinator.com/item?id=46881692", "by": "nberkman", "date": "2026-02-03", "stance": "recommend", "quote": "I built Clippy (https://github.com/neilberkman/clippy) from scratch, a much better bcopy, that fixes a real gap in pbcopy", "excerpt": "I get the concerns, but there's a flip side nobody's talking about: what about experienced developers who had years of ideas bottled up and never had the bandwidth? I used to think open source was something I'd focus on when I retired. Instead I'm doing it now. I built Clippy (https://github.com/neilberkman/clippy) from scratch, a much better bcopy, that fixes a real gap in pbcopy, and it hit 200 stars and Homebrew c", "context": "experienced developer", "use_case": "macOS clipboard copy", "switched_from": "", "story": "How Vibe Coding Is Killing Open Source"}], "threads": [{"url": "https://news.ycombinator.com/item?id=49649864", "title": "From Git to Fossil (2025)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48583407", "title": "Excessive nil pointer checks in Go", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47956602", "title": "Your Rust Clippy Config Should Be Stricter", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46924426", "title": "Software Factories and the Agentic Moment", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46876455", "title": "How Vibe Coding Is Killing Open Source", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {"recommend": 1}, "2026-05": {}, "2026-06": {"neutral": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {"recommend": 1}, "2026-10": {}}, "quotes": [{"id": 794885232, "item_id": 49680327, "url": "https://news.ycombinator.com/item?id=49680327", "by": "throwawayqqq11", "date": "2026-09-13", "stance": "recommend", "quote": "Having countless [0] very restrictive guard rails like deny(clippy::float_arithmetic) for your usecases codifies intent about project structure", "excerpt": "I agree. The friction is not an issue of the language or of toxic communities but the culture of how software is crafted and passed on. I use rust for hobby projects and besides the savety and soundness decisions, i love the tooling. Having countless [0] very restrictive guard rails like deny(clippy::float_arithmetic) for your usecases codifies intent about project structure in a way i have seen nowhere else. Not eng", "context": "uses Rust for hobby projects", "use_case": "Rust linting guard rails", "switched_from": "", "story": "From Git to Fossil (2025)"}, {"id": 778138512, "item_id": 48633657, "url": "https://news.ycombinator.com/item?id=48633657", "by": "tialaramex", "date": "2026-06-22", "stance": "neutral", "quote": "Rust's \"clippy\" will prompt me to write a more idiomatic while-let or for-each loop", "excerpt": "> My worries about coding all these things into type systems is that this freezes the semantics at a time during development where one is still figuring out the ideal semantics. I don't get this part at all, especially in a language with static typing. It's completely normal for me to not be sure which type I need here and so I use a type alias, or if I'm even less sure I make a wrapper type so that it only has the p", "context": "", "use_case": "Rust linting", "switched_from": "", "story": "Excessive nil pointer checks in Go"}, {"id": 767338016, "item_id": 47958626, "url": "https://news.ycombinator.com/item?id=47958626", "by": "stop50", "date": "2026-04-29", "stance": "recommend", "quote": "I made myself pre commit hooks for running clippy nightly and deploying my standard lints", "excerpt": "Thats what i implemented for myself. I made myself pre commit hooks for running clippy nightly and deploying my standard lints(clippy and non-clippy). Thanks to jq-lang and the jq-wrapper tomlq it can even work around the lints/workspace.lints difference with little problems. For myself i have forbidden unwrap/expect, since this can lead to panics. For cases where an unwrap IS unavoidable, i use unsafe {unwrap_unchec", "context": "Rust developer", "use_case": "Rust linting", "switched_from": "", "story": "Your Rust Clippy Config Should Be Stricter"}, {"id": 750843792, "item_id": 46927737, "url": "https://news.ycombinator.com/item?id=46927737", "by": "lunar_mycroft", "date": "2026-02-07", "stance": "recommend", "quote": "I would strongly recommend turning on most of clippy's lints if you want to learn rust.", "excerpt": "To pick a few (from the server crate, because that's where I looked): - The StoreError type is stringly typed and generally badly thought out. Depending on what they actually want to do, they should either add more variants to StoreError for the difference failure cases, replaces the strings with a sub-types (probably enums) to do the same, or write an type erased error similar to (or wrapping) the ones provided by a", "context": "", "use_case": "linting Rust code", "switched_from": "", "story": "Software Factories and the Agentic Moment"}]}