Show HN: Auto Wiki – Turn your codebase into a Wiki (wiki.mutable.ai)
React: https://wiki.mutable.ai/facebook/react
Ollama https://wiki.mutable.ai/jmorganca/ollama
D3: https://wiki.mutable.ai/d3/d3
Terraform: https://wiki.mutable.ai/hashicorp/terraform
Bitcoin: https://wiki.mutable.ai/bitcoin/bitcoin
Mastodon: https://wiki.mutable.ai/mastodon/mastodon
Auto Wiki makes it easy to see at a high level what a codebase is doing and how the work is divided. In some cases we’ve identified entire obsolete sections of codebases by seeing a section for code that was no longer important. Auto Wiki relies on our citations system which cuts back on hallucinations. The citations link to a precise reference or definition which means the wiki generation is grounded on the basis of the code being cited rather than free form generation.
We’ve run Auto Wiki on the most popular 1,000 repos on GitHub. If you want us to generate a wiki of a public repo for you, just comment in this thread! The wikis take time to generate as we are still ramping up our capacity, but I’ll reply that we’ve launched the process and then come back with a link to your wiki when it’s ready.
For private repos, you can use our app (https://app.mutable.ai) to generate wikis. We also offer private deployments with our own model for enterprise customers; you can ping us at info@mutable.ai. Anyone that already has access to a repo through GitHub will be able to view the wiki, only the person generating the wikis needs to pay to create them. Pricing starts at $4 and ramps up by $2 increments depending on how large your repo is.
In an upcoming version of Auto Wiki, we’ll include other sources of information relevant to your code and generate architectural diagrams.
Please check out Auto Wiki and let us know your thoughts! Thank you!
135 comments
[ 6.6 ms ] story [ 233 ms ] threadWould love to see this for Godot (https://github.com/godotengine/godot). Maybe Maplibre too (https://github.com/maplibre/maplibre-native)!
We are generating those two wikis now. Thanks for the request.
I tried the app version on one of my old repos. It’s a somewhat challenging test case because there are few comments and parts of the code are incomplete, though I’d say the naming convention is pretty good. The app suggested the question “What is the purpose of the ‘safemode-ui-hook.m’ file?” I accepted the suggestion, and the output was… completely wrong.
I’m not surprised it guessed the purpose wrong; even a human would need some context to understand what’s going on in that particular file, though of course the AI did worse by being confidently wrong rather than saying it didn’t know. But the AI also made specific claims that could be seen as wrong just by reading the file. It claimed the file “defines a SUBSTITUTE_safemodeUIHook C struct” when neither that struct name nor anything like it appears anywhere in the file. The name seems to just be mashed together from the repo name and file name.
Which makes me wonder, did the AI even see the content of the file? Is it pre-summarized somehow in a way that makes it know very little about the file? Or did the AI see it in full, but hallucinate anyway?
The site said an Auto Wiki didn’t exist for my repo but could be generated via app.mutable.ai, so I went there and assumed it was substantially the same product despite the slightly different interface. I guess I didn’t find the actual Auto Wiki functionality on the app domain.
As an aside, I've been thinking of creating an auto-wiki for game lore based on what AI npcs say, i.e. convert their hallucinations into canon.
How was your experience of taking unstructured text (though code is more structured) and making it into wikis?
How difficult is to have it do incremental updates vs re-create it all?
Now, most of the conversations are between the AIs and the hallucinate stuff based on the very small background lore I gave as a prompt. I've been thinking of having a background process that takes all of these conversations through many different games and start building a coherent game lore wiki, automatically.
Basically, letting these interactions build the game lore.
It is quite different from using a repo because code is 1) relatively structured, 2) coherent, 3) and refers to a single instance. In contrast, the corpus of conversations may have conflicting narratives of the game lore which need to be reconciled and there is close to no structure!
Anyway, happy to chat if you think this is an interesting topic for auto-wikis.
Could you do Appwrite? https://github.com/appwrite/appwrite
I'm not affiliated to them, just wanted to get started hacking it.
> This provides a register-based virtual machine that executes the bytecode through simple opcodes.
Python's VM is stack-based, not register-based.
> The tiered interpreter in …/ceval.c can compile bytecode sequences into "traces" of optimized microoperations.
No such functionality exists in CPython, as far as I know.
> The dispatch loop switches on opcodes, calling functions to manipulate the operand stack. It implements stack manipulation with macros.
No it doesn't. If you look at the bytecode interpreter, it's full of plain old statements like `stack_pointer += 1;`.
> The tiered interpreter is entered from a label. It compiles the bytecode sequence into a trace of "micro-operations" stored in the code object. These micro-ops are then executed in a tight loop in the trace for faster interpretation.
As mentioned above, this seems to be a complete hallucination.
> During initialization, …/pylifecycle.c performs several important steps: [...] It creates the main interpreter object and thread
No, the code in this file creates an internal thread state object, corresponding to the already-running thread that calls it.
> References: Python/clinic/import.c.h The module implements finding and loading modules from the file system and cached bytecode.
This is kinda sorta technically correct, but the description never mentions the crucial fact that most of this C code only exists to bootstrap and support the real import machinery, which is written in Python, not C. (Also, the listed source file is the wrong one: it just contains auto-generated function wrappers, not the actual implementations.)
> Core data structure modules like …/arraymodule.c provide efficient implementations of homogeneous multidimensional arrays
Python's built-in array module provides only one-dimensional arrays.
And so on.
I think the concept is really great would just like to understand especially for enterprise use cases.
Meanwhile on the negative side, it adds hallucinations. You say you "cut back" on them but as teraflop's comment shows, it still has plenty.
BTW: even the Mastodon link from your OP says "wiki not found" for me.
Your current product isn't a wiki generator, it's a website generator.
https://en.m.wikipedia.org/wiki/Wiki
Then humans could also intervene in the talk pages and set the record straight, while allowing LLM to go back and edit the actual article
this would also be cool because it would be async, like real wikis, so you can use slower models.
Looking forward to seeing the results :)
Then when I clicked again it loaded.
Then I clicked the one for D3 and it said the same. And I clicked it again and it still said the same.
Is this some kind of weird manifestation of a DB conn error or something?
For example: what if instead of one document creator bot, you had an ensemble of personas that act out the motions of wiki editing - many diverse sources submitting small edits, experts reviewing edits before inclusion, etc. Basically just turning the simple 1-step citation verification you mentioned in another comment into a complex stage play of sorts, both for the sake of the bots (would probably cut down on hallucinations to follow Wikipedia procedures) and the humans (what’s the point of a verification tool that you can’t follow along with and meta-verify?). This also solves the edit problem, since humans can follow the same procedure and get the same automated reviews.
It wouldnt hurt to go open source, either! Either way cool project, Godspeed.
Maintaining great READMEs, documentation, onboarding docs, etc, is a lot of work. If Auto Wiki can make this substantially easier, then I think it could flip the calculus and make it much more common for teams to invest in these artifacts. Especially for the millions of internal, unloved repos that actually hold an org together.
1. move private wikis to wiki.mutable.ai (not app.mutable.ai) 2. restrict permissions for wiki github app to read only
Hope that explains things, we just wanted to launch as early as possible to get all the wonderful feedback from the HN community so we can bake it into Auto Wiki v2.
And turfjs/turf
Feedback: it's confusing that you're using the word wiki. I guess you mean, the style is similar to Wikipedia? But otherwise the concept of a wiki, an editable set of interconnected pages, seems irrelevant and just confusing here?