I will be messaging you in 7 days on [**2025-07-23 20:05:20 UTC**](http://www.wolframalpha.com/input/?i=2025-07-23%2020:05:20%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/LocalLLaMA/comments/1kr8s40/gemma_3n_preview/n3i6r4z/?context=3)
[**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2FLocalLLaMA%2Fcomments%2F1kr8s40%2Fgemma_3n_preview%2Fn3i6r4z%2F%5D%0A%0ARemindMe%21%202025-07-23%2020%3A05%3A20%20UTC) to send a PM to also be reminded and to reduce spam.
^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201kr8s40)
*****
|[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)|
|-|-|-|-|
Using a super small model for HA is a really bad experience, the one thing you want out of a Home Assistant agent is consistency, and bad models turn every interaction into a dice roll. Super frustrating
On the benchmarks I've seen, 3n is performing at the level you'd have expected of a cutting-edge big model a year ago. It's outright smarter than the best large models that were available when Alexa took off.
Agreed. I tested it with some old prompts i made to sonnet3.5 and it matches the answers spot on. If this got released to desktop its over. Last model i tried on desktop was the latest phi and it was pretty useless
What are you asking it?
In my experience even the smallest models are totally fine for asking everyday things like "how long should I boil an egg?" or "What is the capital of Austria?".
Gemma 3, even the small versions are very consistent at instruction following, actually the best models I've used, definitely beating Qwen 3 by a lot. Even the 4B is fairly usable, but 27b and even 12b are amazing instruction followers and I have been using them in automated systems really well.
Have tried other models, bigger 70b+ models still can't match it for use like HA where consistent instruction following and tool use is needed.
So I'm very excited for this new set of Gemma models.
I'm using Ollama and Gemma3 doesn't support its tool call format but that's super interesting. If it's that good, it might be worth trying to write a custom adapter
https://github.com/beatrix-ha/beatrix?tab=readme-ov-file#what-ai-should-i-use-though (a bit out of date, Qwen3 8B is roughly on-par with Gemini 2.5 Flash)
The prices for Ollama are calculated with the logic of, "Figure out how big a machine I would need to effectively run this in my home, assume N queries/tokens a day, for M years". It's definitely a ballpark more than anything.
Well I mean, so that's part of the conclusion that this data kind is trying to illustrate imho - you can get a _lot_ of damn tokens from OpenAI before local-only pays off economically, and unless you _happen_ to just have a really great rig that you can turn into a 24/7 Ollama server already, it's probably a better idea to try a SaaS provider first.
The worry with this project in particular is that without guidance, people will set up super underpowered Ollama servers, try to use bad models, then be like "This project sucks", when the play really is, "Try to get the automation working first with a really top-tier model, then see how cheap we can scale down without it failing"
Hah! Got it to inference on a Linux (Ubuntu) desktop!
As mentioned by few folks already, the .task is just an archive for a bunch of other files. You can use 7zip to extract the contents.
What you'll find is a handful of files:
- TF_LITE_EMBEDDER
- TF_LITE_PER_LAYER_EMBEDDER
- TF_LITE_PREFILL_DECODE
- TF_LITE_VISION_ADAPTER
- TF_LITE_VISION_ENCODER
- TOKENIZER_MODEL
- METADATA
Over the last couple of months, there's been some changes to Tensorflow-Lite. Google merged it into a new package called ai-edge-litert and this model is now using that standard known as LiteRT [more info on all that here](https://ai.google.dev/edge/litert/inference).
I'm out of my wheel house so got Gemmini 2.5 Pro to help figure out how to inference the models. Initial testing "worked" but it was really slow, 125s/100 tokens on CPU. Though this test was done without the vision related model layers.
Standard x64. Hesitent to share mothod as it was mostly generated by AI and has very poor performance. But I'll see about throwing the method up on Github and see if folks who actually know what they are doing can make heads or tails of it.
Please do! Slow is solvable. Right now there is (to my knowledge) no way to run this on desktop, and tons of interest. Much easier to iterate from a working example, ya know?
[https://ai.google.dev/gemma/docs/gemma-3n#parameters](https://ai.google.dev/gemma/docs/gemma-3n#parameters)
Docs are finally up... E2B has slighly over 5B parameters under normal execution, doesnt say anything about E4B, so I am just going to assume about 10-12B.
Its basicially a moe model, except it looks like its split based on each modality
\> It is built using the gemini nano architecture.
Where do you see this? Usually Gemma and Gemini team are silo-ed from each other, so that's a bit weird. Though that would make sense since keeping gemini nano a secret isn't possible
Whoa, this Gemma stuff is pretty wild. I've been keeping an eye on it but totally missed that they dropped docs for the 3n version. Kinda surprised they're not being all secretive about the parameter counts and architecture.
That moe thing for different modalities is pretty interesting. Makes sense to specialize but I wonder if it messes with the overall performance. You tried messing with it at all? I'm curious how it handles switching between text/audio/video inputs.
Real talk though, Google putting this out there is probably the biggest deal. Feels like they're finally stepping up to compete in the open source AI game now.
What's the point of having such an obvious llm as an ad for an "AI agent" company when it literally just regurgitates the content of whatever it's replying to and then barfs out something about "Maxim AI"?
> Gemma 3n models are designed for efficient execution on low-resource devices. They are capable of multimodal input, handling text, image, video, and audio input, and generating text outputs, with open weights for instruction-tuned variants. These models were trained with data in over 140 spoken languages.
>
>Gemma 3n models use selective parameter activation technology to reduce resource requirements. This technique allows the models to operate at an effective size of 2B and 4B parameters, which is lower than the total number of parameters they contain. For more information on Gemma 3n's efficient parameter management technology, see the [Gemma 3n page](https://ai.google.dev/gemma/docs/gemma-3n).
Google just posted new "preview" Gemma 3 models, seemingly intended for edge devices. The docs aren't live yet.
In the tests they mention Samsung Galaxy S25 Ultra, so they should have some inference framework for Android yes, that isn't exclusive to Pixels
That being said, I fail to see how one is supposed to run that thing.
I'm getting ~12 tok/sec on a two year old Oneplus 11. Very acceptable and its vision understanding seems very impressive.
The app is pretty barebones - doesn't even save chat history. But it's open source, so maybe devs can fork it and add features?
Deepseek r1 thinking gave me this: To add chat history to your Android LLM app, follow these steps:
### 1. **Database Setup**
Create a Room database to store chat messages.
**ChatMessageEntity.kt**
```kotlin
@Entity(tableName = "chat_messages")
data class ChatMessageEntity(
@PrimaryKey(autoGenerate = true) val id: Long = 0,
val modelId: String, // Unique identifier for the model
val content: String,
@TypeConverters(ChatSideConverter::class) val side: ChatSide,
@TypeConverters(ChatMessageTypeConverter::class) val type: ChatMessageType,
val timestamp: Long
)
```
**Converters**
```kotlin
class ChatSideConverter {
@TypeConverter fun toString(side: ChatSide): String = side.name
@TypeConverter fun toChatSide(value: String): ChatSide = enumValueOf(value)
}
class ChatMessageTypeConverter {
@TypeConverter fun toString(type: ChatMessageType): String = type.name
@TypeConverter fun toChatMessageType(value: String): ChatMessageType = enumValueOf(value)
}
```
**ChatMessageDao.kt**
```kotlin
@Dao
interface ChatMessageDao {
@Query("SELECT * FROM chat_messages WHERE modelId = :modelId ORDER BY timestamp ASC")
suspend fun getMessagesByModel(modelId: String): List<ChatMessageEntity>
@Insert
suspend fun insert(message: ChatMessageEntity)
@Query("DELETE FROM chat_messages WHERE modelId = :modelId")
suspend fun clearMessagesByModel(modelId: String)
}
```
### 2. **Repository Layer**
Create a repository to handle database operations.
**ChatRepository.kt**
```kotlin
class ChatRepository(private val dao: ChatMessageDao) {
suspend fun getMessages(modelId: String) = dao.getMessagesByModel(modelId)
suspend fun saveMessage(message: ChatMessageEntity) = dao.insert(message)
suspend fun clearMessages(modelId: String) = dao.clearMessagesByModel(modelId)
}
```
### 3. **Modify ViewModel**
Integrate the repository into `LlmChatViewModel`.
**LlmChatViewModel.kt**
```kotlin
open class LlmChatViewModel(
private val repository: ChatRepository, // Inject via DI
curTask: Task = TASK_LLM_CHAT
) : ChatViewModel(task = curTask) {
// Load messages when a model is initialized
fun loadMessages(model: Model) {
viewModelScope.launch(Dispatchers.IO) {
val entities = repository.getMessages(model.id)
entities.forEach { entity ->
val message = when (entity.type) {
ChatMessageType.TEXT -> ChatMessageText(
content = entity.content,
side = entity.side
)
// Handle other types if needed
else -> null
}
message?.let { addMessage(model, it) }
}
}
}
// Override or modify message handling to include DB operations
fun sendUserMessage(model: Model, input: String) {
// Add user message
addMessage(model, ChatMessageText(input, ChatSide.USER))
// Generate response
generateResponse(model, input, onError = { /* Handle error */ })
}
// Modified generateResponse to save agent messages
override fun generateResponse(...) {
// Existing code...
resultListener = { partialResult, done ->
// When done, save the final message
if (done) {
val lastMessage = getLastMessage(model) as? ChatMessageText
lastMessage?.let {
viewModelScope.launch(Dispatchers.IO) {
repository.saveMessage(
ChatMessageEntity(
modelId = model.id,
content = it.content,
side = it.side,
type = it.type,
timestamp = System.currentTimeMillis()
)
)
}
}
}
}
}
// Clear both UI and DB messages
fun clearChatHistory(model: Model) {
clearAllMessages(model)
viewModelScope.launch(Dispatchers.IO) {
repository.clearMessages(model.id)
}
}
}
```
### 4. **Dependency Injection**
Use Hilt to inject dependencies.
**AppModule.kt**
```kotlin
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
fun provideChatDao(@ApplicationContext context: Context): ChatMessageDao {
return Room.databaseBuilder(
context,
AppDatabase::class.java, "chat-db"
).build().chatMessageDao()
}
@Provides
fun provideChatRepository(dao: ChatMessageDao) = ChatRepository(dao)
}
```
### 5. **UI Layer Adjustments**
Load messages when the fragment starts and handle user interactions.
**ChatFragment.kt**
```kotlin
@AndroidEntryPoint
class ChatFragment : Fragment() {
private val viewModel: LlmChatViewModel by viewModels()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val model = // Get selected model
viewModel.loadMessages(model)
sendButton.setOnClickListener {
val input = inputEditText.text.toString()
viewModel.sendUserMessage(model, input)
}
}
}
```
### Key Changes:
- **Persist Messages**: Only save `ChatMessageText` with `ChatSide.USER`/`AGENT` to the database.
- **Load on Startup**: Load messages when the fragment initializes.
- **Clear History**: Ensure both UI and database are cleared when resetting.
This approach maintains chat history across app restarts and handles streaming responses by saving only the final message. Adjust based on your app's specific needs (e.g., handling images).
I did use 3n to find the right file to give to r1. I gave that to 3n promt code snippet with kotlin selected and it liked it.
The weights are open so it's possible here.
Don't use any *"local Google inference apps"* for one.. but also the fact that you're doing anything on an OS they lord over kinda throws it out the window. Mobile phones are not and never will be privacy devices. Better just to tell yourself that
I did see that google apps potentially send metadata via connecting to Play Services.
I think that makes it much easier for us to audit it though. I'm not super familiar with Android internals, but I would guess that inter-app communication can trivially be snooped with a rooted phone.
Yea just tried it. Needs edge gallery to run, but at least what i tried it was really fast for running locally on my phone even with image input. Only thing about google that got me excited today.
gemma-3n-E4B-it-int4.task (4.4gb) in edge gallery:
model is loaded in 5 seconds.
1st token 1.92/sec
prefill speed 0.52 t/s
decode speed 11.95 t/s
latency 5.43 sec
Doesnt sound too impressive compared to similar sized gemma3 4b model via chatterui, but the quality is much better for german at least imo.
That's Gemini Nano, they have APIs to use it now (and improved it) https://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html?m=1
I get something like 4 t/s using llamacpp, still good to convert files. Yes for code completion impossible, way to slow. But for vibe coding component, very good.
A year ago I used Gemma 2 9b on my laptop on 16 hour plane flight to Japan (without internet) to brush up on Japanese phrases. This is an improvement on that and can be done from a phone!
>They are capable of multimodal input, handling text, image, video, and audio input,
What's the onomatopoeia for a happy groan?
"Uunnnnh"?
I'll just go with that. Everyone is really going to have to step it up with the A/V modalities.
This means we can have 'lil robots roaming around.
'Lil LLM R2D2.
>models to operate at an effective size of 2B and 4B parameters, which is lower than the total number of parameters they contain.
So it's an MoE, multimodal, multilingual, and compact? What a time to be alive!
Any guide to use this on PC? I tried [https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/llm\_inference/js](https://github.com/google-ai-edge/mediapipe-samples/tree/main/examples/llm_inference/js) but it gives an error "Failed to initialize the task."
There are problems with their mediapipe program, so 3n-models do not work untill they fix it: [https://github.com/google-ai-edge/mediapipe/issues/5976](https://github.com/google-ai-edge/mediapipe/issues/5976)
You can access it now: [https://aistudio.google.com/prompts/new\_chat?model=gemma-3n-e4b-it](https://aistudio.google.com/prompts/new_chat?model=gemma-3n-e4b-it)
Is it actually working for you? I just get a response that I've reached my rate limit, though I haven't used AI studio today at all. Other models work.
I will be messaging you in 14 days on [**2025-06-04 19:37:55 UTC**](http://www.wolframalpha.com/input/?i=2025-06-04%2019:37:55%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/LocalLLaMA/comments/1kr8s40/gemma_3n_preview/mtj1sk3/?context=3)
[**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2FLocalLLaMA%2Fcomments%2F1kr8s40%2Fgemma_3n_preview%2Fmtj1sk3%2F%5D%0A%0ARemindMe%21%202025-06-04%2019%3A37%3A55%20UTC) to send a PM to also be reminded and to reduce spam.
^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201kr8s40)
*****
|[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)|
|-|-|-|-|
I will be messaging you in 14 days on [**2025-06-03 17:09:14 UTC**](http://www.wolframalpha.com/input/?i=2025-06-03%2017:09:14%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/LocalLLaMA/comments/1kr8s40/gemma_3n_preview/mtbrjhh/?context=3)
[**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2FLocalLLaMA%2Fcomments%2F1kr8s40%2Fgemma_3n_preview%2Fmtbrjhh%2F%5D%0A%0ARemindMe%21%202025-06-03%2017%3A09%3A14%20UTC) to send a PM to also be reminded and to reduce spam.
^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201kr8s40)
*****
|[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)|
|-|-|-|-|
Woah, that is not your typical architecture. I wonder if this is the architecture that Gemini uses. It would explain why Gemini's multimodality is so good and why their context is so amazing.
\> Gemma 3n enables you to start building on this foundation that will come to major platforms such as Android and Chrome.
Seems like we will not be able to run this on Laptop/Desktop.
[https://developers.googleblog.com/en/introducing-gemma-3n/](https://developers.googleblog.com/en/introducing-gemma-3n/)
I am not sure it runs under LiteRT and is optimised to run on mobile and has examples for.
Linux does have LiteRT also as TFlite is being moved out and depreciated for TF but does this mean its only for mobile or we just do not have the examples...
Problem is, it's not just a LiteRT model. It's wrapped up in a .task format. Something that apparently Mediapipe can work with on other platforms. There is a Python package, but I can't for the life of me find out how to inference models via the pip package. Again, only documentation points to WASM, iOS, and Android:
[https://ai.google.dev/edge/mediapipe/solutions/genai/llm\_inference](https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference)
There might be a LiteRT model inside, though not sure how to get too it.
Tl;dr: the architecture is identical to normal transformer but during training they randomly sample differently sized contiguous subsets of the feed forward part. Kind of like dropout but you always sample the same contiguous subset of neurons in increasing sizes.
They also say that you can mix and match, for example take only 20% of neurons for the first transformer block and increase it slowly until the last. This way you can have exactly the best model for your compute resources
5B and 8B according to the blog: [https://developers.googleblog.com/en/introducing-gemma-3n/](https://developers.googleblog.com/en/introducing-gemma-3n/)
How the flip flop do I run it locally?
The official gemma library only has these
```
from gemma.gm.nn._gemma import Gemma2_2B
from gemma.gm.nn._gemma import Gemma2_9B
from gemma.gm.nn._gemma import Gemma2_27B
from gemma.gm.nn._gemma import Gemma3_1B
from gemma.gm.nn._gemma import Gemma3_4B
from gemma.gm.nn._gemma import Gemma3_12B
from gemma.gm.nn._gemma import Gemma3_27B
```
Do I just have to wait
These are meant to be run on an Android smartphone. I'm sure people will get it running on other devices soon, but for now you can use the Edge Gallery app on an Android phone.
.task file format used by this example app:
[https://github.com/google-ai-edge/gallery](https://github.com/google-ai-edge/gallery)
which is built using this mediapipe task...
[https://ai.google.dev/edge/mediapipe/solutions/genai/llm\_inference](https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference)
With the kind of optimisations Google is going after in Gemma, these models seem to be very specifically meant to be run with LiteRT (Tensorflow Lite) or via MediaPipe.
would not trust this model \*at all\*.
few use cases I tried in ai studio it just completely hallucinated, got basic facts wrong. maybe it will be 'trainable'? but... my god it's bad. absolutely no chance i'd want to use this in its current form.
Doesn't q8/into have very approximately as many GB as the model has billion parameters? Then half of that, q4 and int4, being 4.41GB means that they have around 8B total parameters.
Or I'm misremembering.
A normal model, has its weights stored in fp32. This means that each weight is represented by a floating point number which consists of 32 bits. This allows for pretty good accuracy but of course also needs much storage space.
Quantization reduces the size of the model at the cost of accuracy.
fp16 and bf16 both represent weights as floating point numbers with 16 bits. Q8 means that most weights will be represented by 8 bits (still floating point), Q6 means most will be 6 bits etc.
Integer quantization (int8, int4 etc.) doesn't use floating point numbers but integers instead. There are no int6 quantization or similar because hardware isn't optimized for 6-bit or 3-bit or whatever-bit integers.
I hope I got that right.
MatFormer gives pareto-optimal elasticity across E2B and E4B -- so you get lot more model sizes to play with -- more ameanable to user's specific deployment constraints.
[https://x.com/adityakusupati/status/1924920708368629987](https://x.com/adityakusupati/status/1924920708368629987)
I tried some translation tasks with this model in google ai studio. The quota is limited to one or two message for the free tier at the moment, but according to GPT-o3's evalution, that one-shot translation attempt scored right between gemma 3 27b and gpt-4o, roughly at Deepseek V3's level. Very impressive for its size, the only down side being that it doesn't follow insturctions as well as gemma 3 12b or gemma 3 27b.
Here's the video that shows what it's capable of [https://www.youtube.com/watch?v=eJFJRyXEHZ0](https://www.youtube.com/watch?v=eJFJRyXEHZ0)
It's incredible
Grrr, MOE's broken naming strikes again. "gemma-3n-E2B-it-int4.task' should be around 500MB right? Well nope, it's 3.1GB!
The E in E2B is for "effective", so it's 2B computations. Heck description says computation can go to 4B (that still doesn't make 3.1GB though, but maybe multi-modal takes that additional 1GB).
Does someone have /any/ idea how to run that thing? I don't know what ".task" is supposed to be, and Llama4 doesn't know either.
As u/m18coppola mentioned, the \`.task\` file is the format used by Mediapipe LLM Inference to run the model.
See [https://ai.google.dev/edge/mediapipe/solutions/genai/llm\_inference/android#download-model](https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference/android#download-model)
[https://github.com/google-ai-edge/gallery](https://github.com/google-ai-edge/gallery) serves as a good example for how to run the model.
Basically, the \`.task\` is a bundle format, which hosts tokenizer files, \`.tflite\` model files and a few other config files.
It's not MOE, it's [matryoshka](https://arxiv.org/abs/2310.07707). I believe the `.task` format is for [mediapipe](https://github.com/google-ai-edge/mediapipe). The matryoshka is a big llm, but was train/eval on multiple increasingly larger subsets of the model for each batch. This means there's a large and very capable llm with a smaller llm embedded inside of it. Esentially you can train a 1b,4b,8b,32b... all at the same time by making one llm exist inside of the next bigger llm.
As someone who mainly uses LLM on my phone, phone-sized models is what interests me most so I'm definitely intrigued. Plus, for writing-based stuff, Gemma 3 4b was the clear winner for a model that size with no serious competition (though slow on my Pixel 8a).
So this sounds like exactly what I want. Going to try that 2b one and see the result, even though compatibility is obviously not existant with the apps I use, so can't do my usual tests. Still, being tentatively optimistic!
165 Comments
RomanKryvolapov@reddit
ybhi@reddit
tys203831@reddit
condrove10@reddit
RemindMeBot@reddit
Puzzleheaded-Car8307@reddit
bick_nyers@reddit
kitanokikori@reddit
soerxpso@reddit
dimensions2050@reddit
privacyparachute@reddit
GregoryfromtheHood@reddit
kitanokikori@reddit
Ok_Warning2146@reddit
some_user_2021@reddit
thejacer@reddit
kitanokikori@reddit
harrro@reddit
kitanokikori@reddit
harrro@reddit
kitanokikori@reddit
mister2d@reddit
Juude89@reddit
abubakkar_s@reddit
_murb@reddit
abubakkar_s@reddit
BobserLuck@reddit
Nervous-Magazine-911@reddit
BobserLuck@reddit
Nervous-Magazine-911@reddit
georgejrjrjr@reddit
Skynet_Overseer@reddit
Expensive-Apricot-25@reddit
phhusson@reddit
Neither-Phone-7264@reddit
Otherwise_Flan7339@reddit
Xandred_the_thicc@reddit
Godless_Phoenix@reddit
TheRealGentlefox@reddit
brown2green@reddit (OP)
Nexter92@reddit
phhusson@reddit
Plums_Raider@reddit
djjagatraj@reddit
messiahua@reddit
djjagatraj@reddit
Plums_Raider@reddit
djjagatraj@reddit
AnticitizenPrime@reddit
ExtremeAcceptable289@reddit
AnticitizenPrime@reddit
ExtremeAcceptable289@reddit
djjagatraj@reddit
ibbobud@reddit
AnticitizenPrime@reddit
treverflume@reddit
phhusson@reddit
sandy_catheter@reddit
ForsookComparison@reddit
TheRealGentlefox@reddit
AdSimilar3123@reddit
TheRealGentlefox@reddit
ForsookComparison@reddit
Plums_Raider@reddit
ab2377@reddit
Plums_Raider@reddit
webshield-in@reddit
Plums_Raider@reddit
DesomorphineTears@reddit
x0wl@reddit
Nexter92@reddit
x0wl@reddit
Nexter92@reddit
webshield-in@reddit
Skynet_Overseer@reddit
askerlee@reddit
AnticitizenPrime@reddit
lookwatchlistenplay@reddit
Bakoro@reddit
No-Refrigerator-1672@reddit
codemaker1@reddit
Randommaggy@reddit
MustBeSomethingThere@reddit
fynadvyce@reddit
MustBeSomethingThere@reddit
phpwisdom@reddit
AnticitizenPrime@reddit
phpwisdom@reddit
Skynet_Overseer@reddit
Foreign-Beginning-49@reddit
met_MY_verse@reddit
Neither-Phone-7264@reddit
RemindMeBot@reddit
Trick-Gazelle4438@reddit
RemindMeBot@reddit
Few_Painter_5588@reddit
webshield-in@reddit
rolyantrauts@reddit
BobserLuck@reddit
rolyantrauts@reddit
uhuge@reddit
x0wl@reddit
ios_dev0@reddit
-p-e-w-@reddit
nderstand2grow@reddit
webshield-in@reddit
Thomas-Lore@reddit
No_Heat1167@reddit
BobserLuck@reddit
Decidy@reddit
sigjnf@reddit
AnticitizenPrime@reddit
BobserLuck@reddit
Expensive-Apricot-25@reddit
uhuge@reddit
codemaker1@reddit
MixtureOfAmateurs@reddit
AnticitizenPrime@reddit
Neither-Phone-7264@reddit
StormrageBG@reddit
Illustrious-Lake2603@reddit
dyfgy@reddit
AnaYuma@reddit
RandumbRedditor1000@reddit
Ok_Warning2146@reddit
celzero@reddit
Juude89@reddit
TinySmugCNuts@reddit
Any_Number_4496@reddit
Comas_Sola_Mining_Co@reddit
and_human@reddit
Immediate-Material36@reddit
snmnky9490@reddit
Immediate-Material36@reddit
snmnky9490@reddit
harrro@reddit
MrHighVoltage@reddit
shing3232@reddit
noiserr@reddit
Randommaggy@reddit
kurtunga@reddit
LogicalAnimation@reddit
webshield-in@reddit
AnticitizenPrime@reddit
webshield-in@reddit
AnticitizenPrime@reddit
larrytheevilbunnie@reddit
jacek2023@reddit
noiserr@reddit
jacek2023@reddit
sxales@reddit
ResearchCrafty1804@reddit
SlaveZelda@reddit
phhusson@reddit
nutsiepully@reddit
m18coppola@reddit
AyraWinla@reddit
InternationalNebula7@reddit
No_Conversation9561@reddit
Available_Load_5334@reddit
x0wl@reddit
and_human@reddit
x0wl@reddit
Zemanyak@reddit
coding_workflow@reddit