[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2qeg4qqf5anle":3},{"code":4,"message":5,"data":6,"timestamp":24},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":12,"hn_threads":14,"one_liner":15,"summary_md":16,"topic":17,"github_topics":20,"license":21,"homepage":9,"updated_at":22,"history":23},"PandaSI-Labs\u002Flittleaibox",21,null,"JavaScript",84,2,56,[],"A bring-your-own-key AI chat client that stores conversations and parsed documents on the device.","If you want an AI chat workspace that keeps files and history on your machine rather than on a vendor server, Little Box is worth a look. Just don't read its privacy framing as full offline use: every model call still goes out to a provider.\n\n## The problem\n\nYou want to ask questions about a PDF, a deck or a spreadsheet, or keep a long-running set of chats, without pasting the document into a hosted service and leaving your history there. The usual route is a web client tied to one provider, which stores your conversations and needs an account. Little Box changes the middle step: you enter your own model keys in the app, and the browser reads PDF, DOCX, PPTX and XLSX files locally, storing the extracted text and chat records in IndexedDB. What you get is a chat client where the documents stay on the device while requests go to whichever provider your key belongs to.\n\n## What's different\n\nThe main mechanism is the split between local work and network work. File parsing and chat storage are handled inside the Vite client, while model calls are sent to `\u002Fapi\u002F`, `\u002Fauth\u002F`, image-proxy paths and so on. The [README](https:\u002F\u002Fgithub.com\u002FPandaSI-Labs\u002Flittleaibox\u002Fblob\u002Fmain\u002FREADME.md) is unusually explicit about this line, listing claims it refuses to make, such as the idea that every request is local. That honesty is the most useful thing here for anyone evaluating it.\n\nThe second mechanism is key and origin handling. Two user-supplied keys are supported, and older records may store both in one comma-separated field, while newer ones use a second field; sanitized copies of the user object strip both before display. On Android and on localhost, an origin adapter rewrites API traffic across a short fallback list, which the README frames as help for people on blocked networks. The trade-off is that the app's reliability depends on those fallback hosts and on your own key, not on a single account you log into. The same client also ships as a PWA and an Android shell, so the experience is meant to be one product across three surfaces.\n\nThe README notes that `clearChatsStore` removes every user's records, not one conversation, and that saving writes the whole chat blob at once. That is a design worth knowing before you treat the local store as a tidy per-chat archive.\n\n## Who should try it\n\nGood fit: a developer who wants to attach a file to a coding question without uploading a whole workspace, or a reader who opens papers and decks and wants the conversation and parsed text to stay local while using their own key. It also suits someone on a restricted network who wants a native or local client that can walk a fallback origin list.\n\nPoor fit: anyone who expects a fully offline model, or who wants a provider-managed account and sync across devices. The local store is per browser profile, and the README defines plan ceilings in `src\u002Fentitlements.js` that differ between free use, a custom key and a subscription, so the free tier's limits matter if you plan to use it heavily.\n\n## Requirements and limitations\n\nYou need your own model keys; they are entered in the application UI and should not be committed. You also need a browser that supports IndexedDB and service workers for the PWA path, or an Android device for the Capacitor shell. The [build setup](https:\u002F\u002Fgithub.com\u002FPandaSI-Labs\u002Flittleaibox\u002Fblob\u002Fmain\u002FREADME.md) is a standard Vite flow with an i18n copy step before Vite runs.\n\nThe main ongoing constraint is that local means storage and parsing, not inference. Model calls still leave the device, so provider terms and key handling remain part of your setup. The cache rules also cap what is kept: precached files are limited to 4 MiB each, and runtime caches have entry caps and 30-day ages, so offline behavior is bounded rather than complete.\n\n## HotRepo's take\n\nHotRepo recorded 88 total stars for this JavaScript project on the NEW-REPOSITORY board (#23) on 2026-10-25, two days into its tracked history; there is no comparable daily-board series, so persistence cannot yet be judged. Treat that as a snapshot of early attention, not a trend. If you only need the live product, [littleaibox.com](https:\u002F\u002Flittleaibox.com) is the documented entry point; before adopting the self-built version, check that the fallback origins and key handling match your network and provider setup. The [MIT license](https:\u002F\u002Fgithub.com\u002FPandaSI-Labs\u002Flittleaibox\u002Fblob\u002Fmain\u002FLICENSE) settles the reuse question.",{"slug":18,"name":19},"productivity","Productivity & Utilities",[],"MIT","2026-10-25T02:58:36Z",[],1792912674]