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
Definitely
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
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.
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.
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.
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.
Simultaneously proud and embarrassed to use AI.
Strange.
You could have just said, “yes I used AI”
that’s an awfully high horse you’re up on, son
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.
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.
why would you learn to deploy on a psychopath’s platform if you can have a server for much less?
Thank you VitoRobles
Why what, exactly? Could you be more specific?
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.
This is awesome, will try to use it
Appreciate it :). Ping me on GitHub if you hit any snags, feedback very welcome.
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
People want to know about LLM use for various reason.
I think the main reason is an ethical one. LLMs use a lot energy, datacenters are bad for the environment, people lose their job due to AI, LLMs are trained on stolen data. There is many reasons why someone would not want an LLM project.
And let’s be real, there is a lot of issues with app being vibe coded and being shit real fast.
So when presenting a project to the world, people will definitely ask, and you can respond or not, and be on your way.
It’s naive to think that people won’t use LLMs, but it’s also naive to think that people only care about the end results, especially on a platform where people are generally more sensitive to ethical considerations.
I want to answer because I have not done anything wrong here. Reading these comments, you would think I created this whole AI wave and I am personally responsible for it because I shipped a project. As if there are the traitors / the bad ones on one side, and the purists who still craft by hand the old way on the other.
I said it in a previous comment: we are not here to debate LLM use. This is starting to feel like a witch hunt. Some people seemed to be waiting for the first project to land so they could come and check whether any line of code was written by a human and not by an LLM. Because LLMs are less ethical than humans, of course. :)
On security and privacy: I already answered that in a previous comment. The normal behavior is to check what you install before you do it. Most of the arguments thrown at me here are without foundation, and some are clearly bad-faith.
To Croquette: the three concerns you name (energy use, jobs, training data) are real, and I am not going to insult you by pretending otherwise.
About the vibe-coded apps worry: as a developer, I agree, those apps are going to flood the planet. But there again, that is much bigger than one person, and I do not like generalizations. Are all those apps going to be bad? I do not think so.
About unemployment: mass unemployment driven by AI has already started, and it will probably keep going. I do not have a crystal ball, but in the short term I see real misery for many families. That is not a direct consequence of LLMs or of human inventions in general. It is something older and more primitive: human greed and the race for personal gain. When you promise a manager he can double or triple his salary by using AI to automate the tasks his subordinates used to do, he is not going to hesitate. Except in the rare cases where innate, intrinsic values are dominant, and I have not crossed many of those people.
About energy and preserving the planet: huge topic too. We were already in deep shit before AI and nobody moved. Greed again, and sometimes plain stupidity.
I am not brave enough to carry on my own shoulders the fight against the consequences of a world that has always run after “I need more”. I admit it.
About the platform being more ethics-sensitive than most: you are right, and that is exactly why I am taking the time to answer in detail instead of brushing the question off.
If we are talking ethics seriously, the browser you used to type these lines, the terminal, the text editor, the compiler, the PC, the phone, all of those raise much bigger ethical questions than an AWS services emulator that the audience here has not even tested. (Yes, that one is a bit of a troll.)
For my part, I do not hide behind a pseudonym, and I would not spend my time leaving very negative comments on someone else’s project just for fun. Which is the impression a few of these comments give.
Do not assume you are the ones who hold the ethics and that everyone else is on the wrong side. History has shown us that it is much more nuanced than that, and that binary thinking is often a sign of much more dangerous ideas.
we were already in deep shit before AI and nobody
please, speak for yourself.
that is much bigger than one person
you are the one person presenting this app. defend your personal choices, and maybe take longer to consider everything said here before you do it again.
that’s often how things bigger than one person change- one person at a time
aquafunk, the planet is in shit just for me, apparently. Not for the rest of humanity. Maybe I am the only one breathing pollution every day in most of the places I go, and the only one who has felt the climate change of the last twenty years that everyone else around me has been feeling too. Or maybe that one is also a scam invented by LLMs.
On “you are the one person presenting this app”: yes, I am the one presenting it, and I am proud of what I shipped. I am also humble about it. A side question, since you took the time to lecture me about personal responsibility: did you install it? Did you actually try it? Do you work with AWS on a daily basis? Are you boycotting AWS too, since AWS is built on top of a mountain of open-source software they make profit from, and since AWS also uses LLMs to ship its features?
Those are all good questions, about the vendors the companies I buy things from, and my responsibility in their actions
Maybe I should use less products that use AWS and you could consider your impact when using large language models to publish open source software. I’m almost certain both are in fact true statements, and if you knew me, you’d know I think “should” is strong language
If you want me to make a list of the products and services I avoid? How about this: I feel guilt when I use a service or buy a thing from someone I know I shouldn’t. I try not to do it out of pure convenience, and I don’t try to defend the behavior when I fuck up
Im truly sorry you suffered the ire of those who think your use of it is both wreckless and purely conveience based, but thems the breaks when you want to cut corners, dont care if its a hobby project or youre curing cancer- we can break the planet in scales previously unimaginable with our short sighted behaviour and Im about damn tired of “but everybody else is doing it”
why not try building a community around coding and maintaing an AWS stack replacement? maybe other human beings would help you with the parts you could use some help with?
I said it in a previous comment: we are not here to debate LLM use.
You made an account on this platform and the first thing you did was self promotion. You don’t get to tell us what we’re here to do. If you actually knew anything about this community you would have expected vibe coding to be a sticking point and at least responded gracefully instead of trying to tell the regular participants here what they’re allowed to care about. What a clown
Feyd, another temple guardian.
Where is the harm in sharing a tool with people? What is the problem exactly? Is it written somewhere on this site, or in this community, that we are not allowed to share (or promote, if you prefer) a tool? Is it forbidden?
Did you actually test LocalEmu? Install it? Read what it does? Or did you join the dance for something else entirely?
What a clown.
I said it in a previous comment: we are not here to debate LLM use.
You are right, but people want to know if you used LLMs or not because they might not want to use a project with LLM generated code.
Because LLMs are less ethical than humans, of course. :)
Ethics vary from person to person. We are in a programming community, so the focus is on code and not other subjects.
I am not brave enough to carry on my own shoulders the fight against the consequences of a world that has always run after “I need more”. I admit it
I understand the feeling and I do not blame people for using LLM but companies and corporations for pushing LLM down our throats. It could have been a nice tool, but now its effects are a net negative for the planet in the hope of capturing the market. But this isn’t the place to discuss that.
If we are talking ethics seriously, the browser you used to type these lines, the terminal, the text editor, the compiler, the PC, the phone, all of those raise much bigger ethical questions than an AWS services emulator that the audience here has not even tested. (Yes, that one is a bit of a troll.)
It doesn’t mean that using a LLM doesn’t have an impact because other factors have bigger impact. Every small decision we make has an impact in the long run, but this isn’t the community to discuss that.
I wasn’t the original OP you were responding to, but I felt compelled to give you a reason why people want to know about if a LLM is used or not because this is a hot topic and and I subject I feel strongly about.
I think that in the current context, presenting a project to the public like that will inevitably bring the question about LLM uses.
You have been open and concise about how Claude was used and from that point on, how people react to it is not in your control.
I appreciate that you responded thoroughly to my reply, even though it wasn’t needed.
you’re aware you’re talking to a parrot?
I think it’s important that people see these conversations. Not everyone is aware of the impact of LLMs and if it changes the mind of at least a person, this is not a wasted effort.
I don’t feel like OP is a robot with how its response are written, but we never know.
What a waste of time. They were probably pasting your comment into an LLM to figure out how to respond.
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.






