I maintain LocalEmu, a free and open-source (Apache 2.0) AWS emulator. It started as a fork of the archived LocalStack Community edition. The goal is to keep a genuinely free, open local AWS emulator alive and maintained.
What it does:
- Emulates 132 AWS services on a single endpoint (
localhost:4566) - Pure-Python core, with real Docker engines for Lambda, EC2, RDS, ECS, EKS, and OpenSearch
- Point your existing AWS CLI, boto3, Terraform, CDK, or Pulumi at it, zero config
- No account, no auth token, no telemetry. Persistent state across restarts
- Optional fidelity knobs: IAM policy enforcement, throttling, latency injection, Lambda cold starts
Why I built it: kill the multi-minute deploy loop, drop the dev/test AWS bill to zero, and stop keeping real credentials on dev machines.
It’s for fast local dev, testing, and learning, not production, and not bit-for-bit parity with the real cloud.
Repo: https://github.com/localemu/localemu Site: https://localemu.cloud/
Happy to answer questions, and feedback is very welcome.
is this vibe-coded
If the project itself is vibe coded, the author is doing a good job of hiding it. There’s some slight lean towards claude-like speak, (“real behavior” and the way some of the readme sounds) but the commit style and comments and such don’t immediately trigger the obvious LLM alarms in my head.
That website is definitely vibe coded though. I’ve seen enough one-shot websites from LLMs while playing around with them to immediately notice the AI website style lol
First file I clicked on has very claude-speak comments. Actually I was so focused on the writing style I didn’t even realize those were em-dashes. Pics on the website are definitely AI gen (warping on the grid lines)
Looks like the author is trying to hide it by stripping Claude off of the commits and having no CLAUDE/AGENTS.md. Says its a fork of localstack but repo layout seems to differ, and that did have an AGENTS.md
I am surprised that someone comes to share an open-source project and Nate’s first reflex is “let me go look for traces of AI in what was generated”. That impresses me.
You know Nate, I could have just let this comment fade out, but I am not going to. Let me tell you why.
When someone shows me a product, here is how I react, as a developer and incidentally as a human being:
- I look at whether it solves a technical problem I am facing.
- I check whether it is safe to install. Are there security or privacy concerns?
- I install it and I use it.
- If I feel like commenting at that point, I do it, and I do it constructively, because the person on the other side spent time and energy to put a tool in my hands.
- If I can, I help.
That is how I would have reacted. We are all different, and that is a good thing for humanity. Difference is richness.
@Nate, whether the code is entirely generated by Claude, GPT, Gemini, Cursor or anything else, I want to tell you that it is none of your business, unless you have something against AI itself, in which case you could have said so clearly or just kept scrolling. The site has plenty of other topics where you can leave comments that will satisfy you.
Me, I am just a simple Developer (with a capital D anyway) who shares projects that nobody is forced to use. You can criticize them on the substance, on the form, but not on the way they were developed, because you do not know how they were developed, and do not forget that the important thing is the result. As for the means, I can reassure you, they are decent. I did not kill anyone along the way.
This reminds me of the unjustified pile-on against people who try to share things, but who get blamed for using AI in 2026.
Thanks Nate for your sharp eye and your constructive criticism.
Here’s the thing dude. There is no “none of your business” anymore. If an Israeli hacker group wrote the software, clearly it’s a bad idea to use it. Either don’t publish it, or state how it’s made.
People don’t want to support unethical behavior. Trying to hide it is even more unethical so of course people are going to analyze everything you’ve done.
Don’t announce the project if you don’t want it analyzed.
that’s an awfully high horse you’re up on, son
Simultaneously proud and embarrassed to use AI.
Strange.
You could have just said, “yes I used AI”
Filing all of this under “maintainer is a freak” and moving on.
traxex, the only contribution in your comment is the word “freak”. Moving on with you.
have vibe-coders proven to be maintaining yet?
Your second check is exactly why someone would check if it’s AI-generated.
I check whether it is safe to install. Are there security or privacy concerns?
Let’s review some basic security: the CIA triad stands for Confidentiality, Integrity, and Availability. Confidentiality is never a guarantee with AI-generated systems because the developers are usually spending even less time thinking about the code than normal since AI does the thinking. Plus AI systems are getting owned left and right (litellm anyone?). Integrity is never a guarantee because the developers don’t understand the system the AI slopped together and AI is only good at unit tests in some cases, not integration or end-to-end. That requires a system perspective. Finally, availability is usually worse with AI slop because AI is trained on really bad software that is rarely optimized. That requires vertical scaling out of the box.
Looking at this codebase, the integration cover hits three services and not totally at that. There are no security tests. There are no published security findings. There are no security standards in the contribution guidelines. While there is a disclosure process, there are no automated baseline tests available.
So why exactly did you move beyond your second check? This project has no security. Remember, that’s your guideline even before constructive criticism.
Edit: I just realized you’re the maintainer and you’re yelling at someone for asking about AI stuff when you can’t be bothered to do basic security. Worse yet, you’ve attempted to hide your slop instead of making users aware of the extra security issues. You have to understand I wouldn’t have commented on this if you hadn’t included a basic check you went out of your way to screw up. Glass houses and all that.
Lmao I use AI coding for work dude, not that I particularly enjoy it, but I’m required to.
This project does not solve any problems I have, and someone else asked if it was AI generated. Since I’ve seen a ton of AI output I’ve gotten a bit of an eye to look out for telltale signs. Sure enough, the first file I clicked into had these signs. You open sourced this code and shared it to others, it is absolutely my business on how it was developed
You seem to have tried to hide any references to your use of AI, which I feel is quite disingenuous. I do use projects that have had some AI contributions, notably Home Assistant and Dawarich, both of which inform me before deployment.
Hiding this is immediately a security and privacy issue to me, so if it did solve a problem of mine, it would’ve been subject to significantly more scrutiny.
If you’re going to use AI, just disclose its use. Others can be the judge of whether they want to engage with it or not
Ah ha! Yep, I didn’t see any of the big long form comments like that one, good catch. I scrolled through some of the commits and apparently got unlucky.
Interesting. We used the free localstack at a previous job and it kind of sucked. Mostly we were trying to do S3, and it made adding a lot of files kind of painful. Looks like this has better support for “I need to load a bunch of files into S3 when I start working”.
Can you map a directory and subfolders to S3 with this, or so you need to make calls to “upload” everything?
Thanks for trying LocalEmu :). Yes, you can map a directory without scripting per-file uploads.
aws s3 sync ./mydir s3://mybucket/works against LocalEmu out of the box (orawsemu s3 syncwith the bundled zero-config CLI). For “always populated on start”, drop a one-line script in/etc/localemu/init/ready.d/and it runs on every boot:docker run --rm -d -p 4566:4566 \ -v $PWD/fixtures:/fixtures:ro \ -v $PWD/init:/etc/localemu/init/ready.d:ro \ -e DASHBOARD_API_OPEN=1 localemu/localemuWhere
init/ready.d/seed.shdoesawsemu s3 sync /fixtures s3://mybucket/. OrPERSISTENCE=1if you’d rather load once and have it stick.LocalStack inspired a lot of this, we’re the free open-source continuation.
deleted by creator
Hey, thanks for the comments, let me answer all three at once.
Yes, parts of the LocalEmu code are generated with an LLM (Claude, mostly). It is very controlled and architected by me. I have written enough code over the years to understand what I am doing and what the LLM is doing, and what ships under my name is my call and my responsibility.
Let me ask back: what does the fact that parts of the code are LLM-generated change about the final result? The repo is Apache-2.0 and public. The behaviour is testable. If something is wrong, I would like to know so I can fix it. If it works, why does the way it was typed matter?
I genuinely do not understand the hostility against people who use AI tools and know what they are doing. I am not ashamed of using the tools this era gives me to improve my productivity and ship something useful. The opposite: I would be ashamed if I could not design and code these things myself when I need to. I can. It would just take much longer, and I accept that.
I am not competing with LLMs. Claude, GPT, Cursor, whatever you use, they win the war of producing a lot of code quickly, sometimes better than I would. They also help me with the tasks I do not have time for on a side project: documentation, unit tests, E2E tests. And honestly, designing a website or a landing page with the right CSS. I love the result. I never had the time in my career to learn the frontend side properly, and for a backend / CLI guy like me, LLMs are something amazing here. That is the part of the project that is the most LLM-shaped, and I am not going to pretend otherwise.
We are in an accelerated AI era and every developer gets to decide if they want to ride the wave or not. I have my own opinion about it, but that debate is not what this post is about and I do not want to hijack the thread with it.
The post is about sharing a project I maintain with my own time and energy, looking for a community that shares the goal of making it grow. Maybe other projects after that with the same community, or parts of it. If you have a use case, a bug, a missing service or a workflow LocalEmu does not handle yet, that is what I would love to hear about.
PRs and issues are welcome: https://github.com/localemu/localemu
Given how defensive you are, I’m pretty sure you know exactly why.
I said it in my first reply, paragraph one. Not embarrassed. Calling someone defensive because they respond to attacks instead of capitulating is a rhetorical trick, not an argument. Attacking a stranger over a free open source project, for fun or out of some hidden envy, says more about you than about the project :).
I didn’t attack anyone.
but why?
I can explain!
AWS is ridiculously complicated. I had to study AWS to learn data analytics and the entry level test was overwhelming with just learning like 10 services.
The best way to learn of course is to sign up for an account and actually play. But, its really easy to spend $10k because you didn’t set it up correctly.
That story is actually pretty common. People waking up to $500 bills because they left a server on and some hacker took it over. Or they activated a dozen services and didn’t know how to shut them down.
Thank you VitoRobles
why would you learn to deploy on a psychopath’s platform if you can have a server for much less?
Why what, exactly? Could you be more specific?




