Client on DS Lite. LLM on Mac.
post
Doesnβt the DSβ¦ just have a browser? Meaning youβre just pointing at a web page here?
The DSi had a built-in browser, the DS and DS Lite require a game card plus a memory expansion pack to use a browser. Even at the time, website support was spotty at best so I dread to think how a browser based on Opera 8.5 from 2006 would work on the modern web
Yes but this isn't a full browser, just an API client.
Out of topic, but I'm unreasonably happy that you use the more exact word "LLM" instead of AI. Cool project!
Which part is selfhosted?
all of it. I'm not using anything outside of my own local area network.
Please share the full stack with us
I use the Kaico DSpico Flashcart and on the RPi Zero 2W I use a bash script (because I don't want to host it permanently) with hostapd, iw, dnsmasq, socat, and iproute2. For HTTP and JSON I use my own implementation, no library. The rest is documented in the post.
Did some experiments with my DS Lite and ended up with this. Using DevkitPro libs (libnds, dswifi, calico). Apfel on macOS and a wifi (WEP) bridge running on a RPi Zero 2W. π€
Which LLM are you running and what are you running it on?
This is the model:
{
"data" : [
{
"context_window" : 4096,
"created" : 1719792000,
"id" : "apple-foundationmodel",
"notes" : "Apple on-device model via FoundationModels framework. Unsupported parameters are rejected with 400 when present (except n=1 and logprobs=false). Supported languages: it, zh, fr, en, nb, fr, da, es, es, es, vi, zh, de, pt, tr, en, zh, sv, nl, ja, en, ko, pt",
"object" : "model",
"owned_by" : "apple",
"supported_parameters" : [
"temperature",
"max_tokens",
"seed",
"stream",
"tools",
"tool_choice",
"response_format",
"x_context_strategy",
"x_context_max_turns",
"x_context_output_reserve"
],
"unsupported_parameters" : [
"logprobs",
"n",
"stop",
"presence_penalty",
"frequency_penalty"
]
}
],
"object" : "list"
}
and I'm running it on a MacBook Air M4 16 GB. "Apfel" (the CLI tool) is kinda a wrapper around it and exposes an OpenAI compatible API.
Do I understand correctly that what you've made is a DSLite client to chat with the apple included model on your laptop?
Exactly, yes. And I use the Raspberry Pi Zero 2W as a WiFi AP (RPi is connected to my home network and to my DS Lite) because the Nintendo DS Lite only supports WEP encryption. So that the DS Lite is able able to send requests to my inference on the MacBook Air
That's a really neat and fun project!
I have a back DSLite that I got the new OS cart for and I've been having fun loading it up with emulators and my favorite games from the past. I love how there is such a vibrant community around DSLite hacking.
You should certainly keep doing projects like this and sharing them. I'm glad you shared it because I love hacking projects. However for me this is not on topic for selfhosting even if it is still a very cool project.
Thank you so much, I appreciate your comments. It means a lot to me. :)
The only reason why I did this project was because someone showed up in my feed with a post about a DS Lite hack. We're all inspiring each other haha :D
However for me this is not on topic for selfhosting
I'm always struggling to find the right community for posting. Which place would be the best?
Which place would be the best?
The first place to jumps to mind for me is https://hackaday.com/ and if there is a Threadiverse comm for these kinds of projects I would also like to find it.
Let's create a community then? :)
Go for it! I will happily join it
It's called HackShelf
Nice! got a link?
https://programming.dev/c/HackShelf
I haven't posted yet but for any upcoming project I will use it =)
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
| Fewer Letters | More Letters |
|---|---|
| AP | WiFi Access Point |
| RPi | Raspberry Pi brand of SBC |
| SBC | Single-Board Computer |
[Thread #42 for this comm, first seen 6th Jul 2026, 08:50] [FAQ] [Full list] [Contact] [Source code]



all 35 comments