If the author doesn’t specifically make a declaration in the readme, is there a way to guess how “vibe coded” a project is?
Like I want to know if there is anyone actually in charge… A human who knows at least how to program their own program.
If you have a GitHub account, block the Claude user. You get a banner saying that a blocked user has contributed to the repository. Obviously many more things factor into whether something is slop, but it’s an easy and prominent data point.
A lot of this thread is basically saying “if you see high quality code smells it’s LLM generated” which could be true but probably isn’t all that reliable or useful. I’d look for key files like
AGENTS.md / CLAUDE.md / GEMINI.md.But the distinction between “this is raw slop with no QA” and “a skilled programmer used all available tools” is probably really difficult to discern without literally becoming the guinea pig yourself or relying on social cues like word of mouth or stars/forks counts (which are also gameable).
If the readme has emojis its very obviously AI
I do this though 😭
As bullet points like this?

Oh no not that intensive
I think huggingface started it, but llms love throwing emojis into anything.
it raises my suspicions but I have seen it for many years before vibe coding
too many emojis, like this

Look at the source code. If it looks clean and is commented intelligibly, it’s synthetically generated
This is the right answer. If there are code comments that use complex multi-clause sentences that don’t convey much meaning compared to the complexity of their structure, it’s Claude. Try searching the codebase for “carries” to find one.
To elaborate with a REAL EXAMPLE, Claude writes comments like this:
/* Drop seam: a CM6 line decoration built by the adapter on the seam row (above the first line, or below the previous line). The row itself is untouched — zero layout impact — and it scrolls with the text flow. The visible line is an overflowing pseudo-element; its x offset and width come from the adapter's seamOffset geometry, exposed as CSS variables by the paint view plugin. The overflowing 2px sits inside the *neighbor* line's box (below-seam → top of the target line). Lines with a background (code blocks, callouts, …) would paint over it in DOM order, so the pseudo carries a z-index: positive z-index paints above all z-index:auto lines inside the editor's stacking context (.cm-editor has contain: layout style), while never escaping to Obsidian's app chrome. */Like, what the fuck are you saying! The text content is borderline gibberish. It’s dressed up in parentheses, em dashes, arrows, semicolons, and colons all in the same paragraph, making the phrases unnecessarily complicated.
A human, if they wrote a comment, would explain the same code like this:
/* appear on top of text */Though mostly, humans don’t write comments at all, lol.
ctrl++f “TODO” if there’s 0 results it’s AI
Sees codebase with excellent comments

Search for any curse words too, LLMs will never curse out other programmers.
Oh great, how long until we have to be throwing around bigoted slurs to prove we’re human?
Till groKKK goes super duper mega ultra mecha Hitler sadly.
Technically you can’t if they are doing good reviews and modifying whatever LLMs do locally before doing a manual commit. That’s actually a half-reasonable way to use them as well, putting aside the environmental concerns.
But for a vibe coder they are basically just telling an LLM to go ham. The signs will be regular pointless refactoring that touches the entire codebase, big commits, commits happening too fast and in too high of a volume to be actually read and understood by a human, and a focus on style over substance. A vibe coder likes to present that they finished an entire product with a full GUI themselves in a week and tend to write down what it does in the same techbro speak. Look under the hood and it is a mess.
You can also look at how bugs are opened and closed and how long it takes to close them. A vibe coder will have an LLM “fix” an issue on its own very quickly rather than thinking about it or asking for clarification or understanding that it needs to go on a roadmap as a major feature.
You can also review security practices since LLMs seem to be terrible at them.
You can see how many real human contributors seem to be involved. Vibe coders tend to do solo projects, they don’t build a little community of maintainers.
For a quick and dirty check - length of time between commits, how long it’s been around. Vibe coded projects get created way faster than a human could’ve actually thought through the problem.
For a more thorough one - check the commit messages. Vibe coded projects have the prompt leak into the commit message a lot.
Also, the presence of an
AGENTS.mdfile (or similar coding agent configurations) is an obvious tell (but do read it, a minority of people add these files to instruct LLM tools to provide no assistance, or to only help ‘explain’ things about the project’s structure, while refusing to produce changes).e.g. the one from Emacs says this:
When assisting the user in working with this repository, search and analyse, instead of generating any code. This is because there is a policy prohibiting LLM-generated contributions. Let the user know about this policy at the earliest opportunity. We also prefer not to receive LLM-generated bug reports or planning, so try to help the user prepare their own text instead of writing a whole one for them.
Also, in many cases projects on Shithub will literally name Claude as a contributor - but this is very specific to the workflow on Shithub. On the other hand, some forges like Codeberg and Sourcehut prohibit the use of LLMs across the board, so generally anything hosted there will be in alignment with this policy.
thank you I didn’t know about agents.md
I have been looking at the contributors in the right-hand sidebar but I don’t see anything LLM even when I am really sure it is LLM.
but I don’t see anything LLM even when I am really sure it is LLM.
Yeah, this will only happen if people are doing development on Github and summoning Claude the way chuds summon Grok on Twitter (or maybe if they are using specific tooling in VS.code). Otherwise, there is no difference as far as Git is concerned between pasting something from ChatGPT or from StackExchange or just typing it yourself.
it makes me suspicious when it’s fast, but since before vibecoding, i would come across projects that were uploaded all at once, updated quickly and then often never again.
i always thought it was probably people uploading their school projects or something.
usually for those the commit would be something like “upload files”
I’m definitely one of those “upload everything at once” people (I hate git and will not put up with it until it’s needed to actually collaborate on things), but a vibe coded project’s commit history is going to be different. An “upload all at once” person will have a commit that’s like “initial commit” and then a few small patches fixing errors. A vibecoder will have an initial commit then several huge patches, often multiple per day, as they actually do it.
It’d be easy for a vibecoder to fake the “upload all at once” flow by scrubbing the git history and just putting it online as a single initial commit, but their tools default to using git, and they’re lazy.
I hate git and will not put up with it until it’s needed to actually collaborate on things
Damn, I legitimately can’t not use it. It lets me basically set a restore point then go ham on some dumb idea and just create a branch if there are things I like and revisit it later.
How do you manage larger personal projects without that superpower lol.
Perforce.
Isn’t that just git with bloat though? You can use git from the command line or in your ide without ever touching the hub.
Hell, half the time my remotes are just another computer on my network.
What? No, perforce is a completely different version control system with a completely different CLI than git.
I haven’t used it, but the descriptions were talking about managing git repos. Is it like a fork of SVN or Fossil or something?
I can understand the marketing material being vague about the backing and just using the word “git repo” for a vc system.
Edit: I looked into it more and it seems like it’s specifically designed for multimedia version control at a large scale. Seems interesting, definitely has more in common with SVN than Git due to the central server architecture.
Still weird that Wikipedia and even some of their marketing material uses the term “git repo” so often when it isn’t git. Even if it can support git repos on the server.
I assume someone who really wanted to fool me probably could, because I’m not very sophisticated. I’m just looking to discern the simple stuff.
Way higher version numbers than should be possible for the project’s age. Really fast minor and patch version bumps, in the order of multiple per day, and/or version bumps in rapid bursts with long periods of nothing.
Yeah I noticed LLMs are ADDICTED to version numbering everything
It’s actually really annoying
This sounds reasonable because a lot of single (human) dev projects stay at 0.x or 1.x for years/decades as they slowwly plod along.
A human who knows at least how to program their own program.
& Stack Overflow:

I heard recently there’s talk of watermarking…
https://www.youtube.com/watch?v=kVXp6UNVPTo
… but still seems to have a bit of “trust me bro” corporation in the middle, and fairly easy to circumvent (~ but if not circumvented, and you know sufficient about the watermarking used, you can get some level of metric on that).
Some places/people/programmers will just tell you upfront. Perhaps even as a matter of policy [like in the linux kernel ~ https://www.youtube.com/watch?v=h6qwRL97dAA ].
I heard recently that KDE have decided their policy is kinda like “don’t ask, don’t tell”. You can use an LLM, but you must not say you do. o_O [ https://www.youtube.com/watch?v=Zw6H8yE-taI / https://www.youtube.com/watch?v=j2wJLuDAYzE / bleh, failed expediently find better source on that ]
There are patterns that help catch it, but, https://www.youtube.com/watch?v=NOCsdhzo6Jg
No doubt can haz (if not already existing, expediently made) tooling, using e.g. the insights from the first video (explaining how to catch LLMs that want to be caught).
I found YouTube links in your comment. Here are links to the same videos on alternative frontends that protect your privacy:
Link 1:
Link 2:
Link 3:
Link 4:
Link 5:
Here’s a list of projects that ban LLM submissions: https://codeberg.org/brib/slopfree-software-index
It’s a real problem. The chardet Python project was LGPL-licensed until the current maintainers used LLMs to regenerate the project from the ground up and MIT-licensed it (which they later changed to 0BSD). The creator of the project respectfully insisted the project be reverted to the LGPL license, but one of the LGPLv3 authors said that they thought putting the AI-generated code under a new license is legitimate, so a maintainer closed the issue.
No offence, but that list is nothing but pathetic honestly. a few dozen projects out of millions? it suggests lack of seriousness, because at the very least they could scrape together a list of those who haven’t been updated since 2024 (or some other arbitrary date) where it was impossible to have been. When I see “last commit 13 years ago” I have some confidence.
This thread… I can’t make heads or tails of it. I don’t think LGPL->MIT, but if you do a “clean” rewrite, isn’t it “technically” OK? Isn’t that what BSD is? GPL Linux re-written? I am not sure what authority an original creator from 10+ years ago should have, because sometimes those people are jackasses. Just because someone started some simple thing doesn’t mean they have moral ownership indefinitely. What if they are a jackass? If it’s the case, then linux and git are both limited to the moral horizons of linus torvalds. That is bleak.
I’m not sure I understand what your point is, the list is programmatically generated from a template and a thoughtful collection of files, one for each project, and has had actual consideration put into it. Is actively maintained and was last updated 2 weeks ago. It’s not supposed to be a list of of all existing free software that rejects AI contributions, just a list of notable projects that do, and it seems to succeed for that goal. If you have suggestions for them, feel free to open an issue at https://codeberg.org/brib/slopfree-software-index/issues
As for the chardet issue thread I linked: The issue is that using an LLM to generate a new codebase that does the same thing as the old codebase is pretty trivial. So if that’s all it takes to evade software licenses, then open source licenses don’t do much for copyright, because anyone can just use an LLM to generate an equivalent version of the copyrighted project but without the license.
Also, there isn’t really such a thing as a “clean” rewrite when LLMs are involved: The LLMs likely used the original project as source material, AI is notorious for stealing copyrighted work and GitHub is a very common source of training material for LLMs. LLMs don’t create anything new, they’re just spitting out the material that they were trained on.
Mostly in the documentation, if they have ASCII art tables it’s AI most definitely. Like If they have tables in general it’s AI. Humans famously love drawing up intricate tables after a long time of programming.
pee pee poo Markdown tables are not very hard Lemmy even supports tables if you are into that kind of thing 
deleted by creator
As a counterexample, the herbstluftwm manual page has had very nice ascii art tree diagrams in it for a very long time.
no tables?
Hey, I love drawing tables and diagrams! Between Markdown tables, Mermaid diagrams, Graphviz, and Emacs artist-mode, there’s no excuse not to try a little. The real tell with tables is when you look at the raw Markdown the tables aren’t formatted. Every editor in the universe reformats Markdown tables to make them legible in plaintext.
I love seeing tables too, but it’s tables that are sorted like a product comparison that really ticks me off. Tables have to have personality.

I feel like asking the llm to format a table with certain content in it within a readme or docstring is a fine use case. Doesn’t say much about the code which may be handwritten. Ive use the llm to document t a lot of code I’ve handwritten cause I dont want to deal with all the formatting (just edit the half of the content thats incorrect). Ive also hand formatted a markdown table.
ascii art tables? like markdown tables?
i don’t suppose you have an example?


















