Skip to content
oskar26Public

About

Hain - private, local AI chat for Android

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

425 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hain app icon: Pim as a glossy mint glass figure with a leaf, in a soft forest of round trees

Hain

Your AI. Your phone. Nobody else.

A private AI assistant for Android that runs entirely on your phone.
No account. No cloud. Free and open source. In English and German.

Status: alpha Platform: Android 10+ Nightly build APK build
License: GPL-3.0 Languages: EN | DE No tracking

Download · Install · Features · How it works · Privacy · FAQ · Contributing · Deutsch

Website: https://oskar26.github.io/hain/


Warning

Hain is in early development (alpha). Things break, features are missing, and chats or settings may be reset between versions. Please don't rely on it for anything important yet. Feedback is very welcome!

Hain ist noch in früher Entwicklung (Alpha). Es kann abstürzen, Funktionen fehlen noch, und Chats oder Einstellungen können zwischen Versionen verloren gehen. Freu mich über Feedback!

Note

About AI: The AI inside Hain can be wrong or make things up, so check anything important. Hain itself is built by one person together with AI coding agents, and every change is reviewed by a human. Details in How AI is used.

What is Hain?

Hain is a chat assistant like ChatGPT, except the AI lives on your phone instead of in a data centre. Your questions, your chats and your memories stay on the device, encrypted, and nobody else can read them. A Hain is a small, sheltered grove: a quiet place that belongs to you.

📱
Runs on your phone
The AI works on the device, even in flight mode
🙅
No account
No sign-up, no e-mail, no API keys
☁️🚫
No cloud
Chats are stored encrypted, only on your phone
💚
Free & open source
GPL-3.0, no ads, no subscription
🇬🇧 🇩🇪
English and German
Every screen in both languages, plain words
🌱
Meet Pim
A friendly sprout who shows you around

Meet Pim

Pim in six moods: idle, blinking, happy, curious, listening, sleeping

Pim is a small mint-green sprout and your guide in Hain. He shows you around in a short welcome tour, breathes, blinks and hops, squishes when you tap him and cheers with confetti once the brain is downloaded. While he thinks, a soft green glow rises from the bottom of the screen. If you turn off animations in your phone's settings, everything stays still.

Screenshots

Welcome screen in the calm Lichtung style
Welcome tour
Answer with weather and Wikipedia steps under a frosted top bar
Chat
One small Pim status while Pim looks something up
Pim looks it up
Settings page Models and packs with Knowledge, Brains, Multimedia, Voice and Extras
Models & packs
News with the daily briefing, a big top story and cards with pictures
News
An article in the reading view
Reading view
Pim answers a question about the article
Ask Pim
Your briefing today with all points
Your briefing

Hain on a tablet: chat list on the left, chat on the right
On tablets the chat list stays open

Features

Since 0.1 = already in the 0.1 test versions (0.1.3.1) · New in 0.2 = added on the way to 0.2 (0.1.4 – 0.1.10.10) · Planned = in the concept or roadmap, not in the app yet. Same marks as on the website.

Area What Hain does Status
💬 Chat Streaming answers, Markdown and code, collapsible "thinking" block, stop (reacts at once). Under every answer a quiet row: copy, share, thumbs up/down (stays on your phone), ask again Since 0.1
⚡ Speed Faster test build, brain loads in the background with progress, remembers the chat between answers instead of re-reading it, system prompt read ahead. Release build shrunk and optimised with R8, with a baseline profile so the app starts and scrolls faster from the first start (also without Play) New in 0.2
🌍 Answer language Pim answers in the language you write in (German, English, French, Turkish, Russian, …), or always in German or English if you want Since 0.1
🌱 First start Playful welcome tour with Pim, brain download (LFM3 1.7B, 1.05 GB) with resume and checksum, celebration screen; the download can wait or run in the background Since 0.1
🗂️ Saved chats Stored encrypted on the phone; search, rename, pin, delete, grouped by day Since 0.1
⚙️ Settings Theme, app icon (3D or flat), easy-to-read font, answer mode (fast / auto / thorough), answer language, "about me" and answer style. Thinking level also right in the message box (brain button) Since 0.1
🧠 Choose the brain Tap "Hain · On this phone" at the top: a small frosted menu lists the brains on your phone with a plain name ("Quick brain"), model and size, marks the one recommended for your phone and loads your pick in the background with progress. Brains not on your phone lead to Knowledge packs. On phones with 8 GB of memory or more there is also the optional Big brain · for strong phones (Jan-v3.5-4B, 2.7 GB): better at picking tools, about three times slower; LFM3 1.7B is the standard brain and thinks out loud when a question needs it; LFM3-Omni 2B is optional (always offered, never picked by itself; it does not think out loud and calls fewer unneeded tools) New in 0.2
📦 Models & packs Settings → Models & packs, sorted into Knowledge, Brains, Multimedia, Voice and Extras: see, download and remove packs, with hints on what fits your phone. Wikipedia offline (German ~136 MB or all articles ~4.7 GB, English ~297 MB or 1 million articles ~3 GB): with a pack the Wikipedia tool answers without internet New in 0.2
🎨 Look One calm design "Lichtung": lots of white, fine hairlines, Hain green only as an accent, radii 12–16 dp, quiet line icons; light font (Hanken Grotesk), dark mode; "Reduce motion" stops all movement Since 0.1
📱 Tablets From 840 dp width (tablet in landscape, open foldable, big split screen) the chat list stays open on the left, and settings show the list and the open page side by side. Models & packs and Memory use two columns (memory: your list on the left, "About you" and the settings on the right), News shows list and article side by side. Phones stay as they are New in 0.2
🌱 Pim Lives everywhere (start page, thinking, done, errors, empty search, pull gestures) and the leaf always stays on his head. Tap him for a different little reaction each time, drag him around on the start page and he springs back Since 0.1
📳 Haptics Fine, crisp clicks instead of buzzing – send, switches, thinking level, answer done, menus, confirming a delete, pull gestures, errors. Never while text streams. Settings → Look → Vibration: Off / Subtle (default) / Normal / Strong Since 0.1
🎮 Secret Hold Pim on the start page for 5 seconds without letting go … (hint: 2048) Since 0.1
🪟 Frosted glass Top bar and message box float as frosted glass over the chat, which scrolls under them; ⋯ menus, long-press menus, the thinking picker, the ↓ button and the side panel too (Android 12+, a calm solid surface on older phones and in battery saver). One Pim status shows waiting, thinking, looking up and writing New in 0.2
ℹ️ About Hain Pim, version (with build number and commit), website, code on GitHub, licence and open-source licences – links open only after your tap New in 0.2
📜 Open-source licences About Hain → Open-source licences: Hain itself (GPL-3.0, link to the code), then every library, AI model, font, icon set and engine part Hain uses, with version, licence and project link. A tap shows the full licence text – read from the app, also offline. A check in CI makes sure no dependency is missing New in 0.2
🔄 Update check Optional: once a day at start Hain asks GitHub if a newer version is out (stable or nightly) and shows a calm hint that opens the release page. Off until you say yes, nothing is installed by itself, the request shows in the network log New in 0.2
🛠️ Developer mode Hidden: tap the version in "About Hain" 7 times. Own GGUF model from Hugging Face (size, RAM hint, download with progress), sampling, context size, thinking, own system prompt, tokens per second under answers New in 0.2
✏️ Chat extras Automatic chat titles; tap your own message to edit or copy it. Chat list: small glass menu at each chat (pin, rename, delete), smooth drawer Since 0.1
🌿 Versions & next question Edit a message or ask again and the old version stays – switch with "‹ 2/3 ›" under the message. Send your next question while Pim still answers: it waits ("wartet", ✕ takes it back) and goes out afterwards. A frosted "↓" brings you back down ("Neue Antwort" when something new came in); the chat only follows new text while you are at the bottom New in 0.2
📤 Export Save or share a chat as Markdown or as a tidy PDF (title, date, roles, code, page numbers); all chats at once as a Markdown ZIP in Settings → Privacy New in 0.2
🧭 Settings, part 2 Glass tiles with their own colour and 3D icon, sub pages, own "reduce motion" switch, glossy 3D Pim, new first start with a language step, brain picker in the top bar New in 0.2
🔧 Tools Calculator and units, weather (Open-Meteo), Wikipedia (German/English), web search without API key that reads several pages (or your own SearXNG), reading a link, alarm (also repeating, e.g. every weekday), timer, calendar entry and route with a confirm card (or start after 3 s with Undo), weather and Wikipedia cards under the answer, weather for your location if you allow it, web search on / ask first / off – Pim shows each step and its sources under the answer. with the small icon of each site at the sources (switch off in Settings → Privacy → Source images) Since 0.1
⏰ Phone actions Alarm, timer, calendar entry, navigation – prepared by Pim as a glass card, done only after your tap Since 0.1
🛡️ Network log Every tool request goes through one gate: orange "Online" dot while it runs, offline mode, log of the last 7 days in Settings → Privacy. The log now stays after a restart (7 days, encrypted), and the brain download goes through the gate too Since 0.1
📰 News Drawer → News: an RSS reader with pictures. Headlines from a fixed mix of 19 sources in German and English (tagesschau, ZDFheute, Deutschlandfunk, DW, DER SPIEGEL, Süddeutsche, ZEIT, taz, junge Welt, nd, CORRECTIV fact checks, BBC, Guardian, DW English, NPR, Al Jazeera, Jacobin, Democracy Now!, Full Fact); every feed loads on its own and the sources take turns in the list. Only three choices: Standard, Standard + my feeds, My feeds only – add any RSS/Atom address, rename or delete it. "Your briefing today" on top (the 5–7 biggest stories with their sources, made on your phone), a big top story, cards with pictures, pull down to refresh. Tap opens the article right in Hain (reading view with text size, serif/sans, line spacing, app/light/dark/sepia, the article's pictures and charts; "Open website" stays), a long press shares the link. Only articles that really are cut off get a "Paywall" mark – paywalls are never bypassed. Ask Pim about the article (summary, simple explanation, background or your own question) and continue in the chat. Optional morning note with the briefing (off by default). Tablets show list and article side by side. Pim can also look at the headlines in the chat and shows them as a card. Feeds, pages and pictures go only through the network gate ("News", "Images" in the network log) New in 0.2
🃏 Answer cards Lists, tables, checklists, progress bars and buttons right in the answer: tick items off (saved with the chat), copy, share or ask the next question with one tap. Bar and line charts for numbers (TalkBack reads them as a sentence); while Pim writes a card, a small grammar keeps it in shape. Still open: pictures in cards New in 0.2
🧠 Memory "Remember that …" / "Merk dir, dass …" and "Forget that …", Pim can also keep something itself (remember tool); fitting memories go into the answer, found by meaning with the optional pack "Search by meaning" (LFM2.5-Embedding, 219 MB). Chips under the answer: "Saved ✓ · Undo" and "3 memories used" (tap shows which). After a chat Pim suggests facts it noticed (only used after your yes; an update shows "Replaces: …"). Settings → Memory: search, edit, delete, undo, topics with your own note, suggestions, on/off, export/import as a file, delete all. Everything stays encrypted on the phone New in 0.2
🔒 Private chats Private chat (eye button at the top): never saved, never searched, deleted when you leave it, tools still work. App lock with fingerprint or the phone's PIN (right away / 1 min / 5 min), block screenshots New in 0.2
📄 Documents Paper clip in the message box → File or photo (PDF, photo of a page, .txt/.md) or My files. Hain reads the text on your phone with a progress line, shows the file as a chip ("Rechnung.pdf · 3 Seiten") and Pim answers from it with page numbers like [S. 2]: small files go into the question whole, long ones are searched (the best 4 parts). Scans and photos need the optional text recognition (PP-OCRv5, ~14 MB, asked first, with a German fix for Ü/ß). Only the text is kept, encrypted; My files lists everything, delete a file or remove the pack New in 0.2
🎙️ Voice Dictation with the mic in the message box (Moonshine Small, German + English, on your phone, speech pack loads on first use), read aloud under every answer (phone voice in Pim's pitch). Still open: Pim's own voice (Pocket TTS), voice mode New in 0.2
📲 On the phone Share text or links from any app into Hain (new chat, text in the box, nothing sent by itself), and PDFs, photos and text files too (new chat with the file attached, read like with the paper clip), home screen widget "Ask Pim" (ask, new chat, last chat), quick settings tile "New chat". Still open: default assistant New in 0.2
🌳 Mini-apps Many key-free integrations (e.g. public transport via Transitous), shown as trees in Pim's forest Planned
🖼️ Images Erase objects, remove background, upscale; optional image generation pack Planned

The live state is in docs/workflow/STATUS.md, the plan in docs/workflow/ROADMAP.md.

New in the latest test build

  • Version 0.1.10.10 – open-source licences in the app.
    • Settings → About Hain → Open-source licences is now a page of its own instead of a link: Hain itself (GPL-3.0) on top, then libraries, AI models (LFM3 1.7B and LFM3-Omni 2B under the LFM Open License v1.0, Jan-v3.5-4B under Apache-2.0, Moonshine, PP-OCRv5), fonts (Hanken Grotesk, OFL), icons (Lucide, ISC), the engine (llama.cpp, SQLCipher, ONNX Runtime, zstd) and content (Wikipedia packs, German word list). Each row shows name, version and licence; a tap opens the full licence text, offline. The globe opens the project page, only after your tap.
  • Version 0.1.10.9 – no empty answers, tidier chat and settings, honest update check.
    • No more empty answers after a long research. With LFM3, Pim used to think so long in the last step of a thorough research that no answer was left. Now the last step answers without thinking and from the notes, and if an answer still comes back empty Pim asks once more – you never see an empty bubble. Thinking that slips into the answer without its tags (“We need to answer …”) is removed.
    • Thinking and tools fold away. Under an answer, the thinking is one line (“Thought · 4 s ›”) and the tools are one line (“3 tools used ›”); a tap opens them with a soft animation (none with reduce motion). While Pim works you see the current step live, afterwards it folds away by itself. TalkBack says “expand” / “collapse”.
    • Alarms always get a card. If you clearly ask for an alarm (“stell mir nen Wecker um halb sieben”, “und 15 Minuten früher”) and the brain forgets the tool, Hain still prepares the confirm card from your words.
    • Update check says what is going on: offline mode, no internet, GitHub not answering (Hain tries three times), no version in this channel yet, or up to date – no more “Are you online?” when you are. A test build (debug) always looks for the next nightly.
    • Settings, tidier: a new Internet page with one main switch and a plain list of what may go online (web search, weather location, site icons, update check; weather, Wikipedia and news only when you ask, models only when you tap); “About you” is now part of Answers & you; shorter subtitles. Technical network settings stay in the developer area.
    • Memory: what Pim knows about you is now written as plain sentences in his instructions (“The user learns Spanish.”), so he uses it for the language, the place and the examples. Vocabulary, translations, poems and jokes no longer start a web search unless you ask him to look something up.
  • Version 0.1.10.8 – LFM3 is the standard brain again, no tool code in answers, sources as chips.
    • LFM3 1.7B is the standard brain again and thinks out loud when a question needs it. LFM3-Omni 2B stays as an optional brain under Models & packs and in the brain menu (never recommended or picked by itself); the switch hint and the "legacy" label are gone. With Omni the thinking menu says honestly that Fast and Thorough only differ in research.
    • No tool code in answers. Raw tool calls the brain writes into its text (JSON, <|tool_call|>, calculate(…)) are removed; cards only appear from a real card block. Pim saves to memory only what you said about yourself or asked him to remember, and asks back instead of leaving an empty answer.
    • Sources as chips. No more "[1]" in the text: small raised green chips with the number open the page; under the answer one quiet line with the site icons and "3 sources" opens the list. Copy, share and read aloud leave the markers out. Thorough research answers the question directly instead of talking about its sources.
    • Chat fixes: the page colour reaches under the message box, the row under an answer stays on one line on small phones (also with "‹ 3/3 ›"), the version counter no longer shows two numbers on top of each other, long tool steps end in "…".
  • Version 0.1.10.7 – a new standard brain, tools only when they fit, faster text.
    • New standard brain: LFM3-Omni 2B (1.05 GB, LFM Open License v1.0). Quicker and better German than LFM3 1.7B. If you still have the old brain, a calm hint offers Get the new one and later Remove the old one – nothing switches by itself.
    • Tools only when they fit. Pim no longer looks up the weather or the news when you did not ask for them (host test: weather without reason 5/10 → 0/10, right tool 7/10 → 8/10). For the weather he uses the place from the chat, then your location, then what he remembers.
    • Memory keeps only what you said about yourself (“Merken: wohnt in Köln”), not guesses.
    • Faster text. The brain uses only the fast cores of your phone, no token gets lost any more, and the screen updates smoothly up to 25 times a second.
    • News briefing: “Make it now” before the first one, and the card shows each step (loading feeds 3/19 → reading → summing up).
    • Settings: Privacy in clear groups (Going online, Safety, Your data), technical switches moved to the developer area, more space between rows; Settings → News opens the news settings and back leads back.
    • Fixed: alarms keep the days you named (“every weekday”) and understand “15 minutes earlier”; answers no longer contain a stray word “fett” copied from Pim's instructions; every pack in Models & packs says honestly what it brings and when it is worth it.
  • Version 0.1.10.6 – a big brain for strong phones and a faster start.
    • Big brain · for strong phones. Phones with 8 GB of memory or more can load a second, bigger brain: Jan-v3.5-4B (2.7 GB, Apache-2.0). It picks the right tool and fills it in more reliably, but answers about three times slower than the standard brain. You find it in the brain menu at the top ("Hain · On this phone") and under Models & packs → Brains; from 12 GB it is marked "Recommended for your phone". Loading and switching is always your choice – LFM3 stays the standard brain for everyone, nothing changes by itself.
    • Answer modes stay. Auto, Fast and Thorough still decide how long Pim thinks and searches. The big brain never shows a thinking block; "Thorough" still gives it the bigger search budget.
    • Faster start for every brain. The fixed part of Pim's instructions (tools and rules) is kept on your phone after the first read and loaded next time instead of being read again, so the first answer after opening Hain comes sooner.
  • Version 0.1.10.5 – the rest for 0.2: tablets, sharing files, bug fixes.
    • Share files into Hain. In any app tap Share → Hain on a PDF, a photo or a text file: a new chat opens with the file attached, read on your phone like with the paper clip (with the text recognition question for scans). A caption that comes along lands in the message box. Nothing is sent until you tap.
    • Two columns on tablets. From 840 dp width Models & packs shows its tiles in two columns, and Memory shows your list on the left and "About you" with the settings on the right. Phones stay as they are.
    • Bigger touch targets. The thinking button in the message box and the buttons in Models & packs are now at least 48 dp – easier to hit, also with TalkBack.
    • Fixed: the reading view no longer centres headings and list items (everything starts at the left edge); the memory tab says "Vorschläge 1" instead of wrapping "Vorschläge (1)" onto two lines; deleting a Wikipedia pack frees its space right away instead of after a restart; after turning the phone, News and the chat no longer keep an old language or old switches.
    • Screenshots without real data. The German shots use the same invented Paris example as the English ones, memory and tablet shots show made-up facts.
  • Version 0.1.10.3 – News becomes a real news reader. Open the side panel → News:
    • Pictures and a calm layout. A frosted top bar, the mode chips in one line, a big top story with its picture, then cards with source, time, headline, teaser and a picture on the right. Pull the list down to refresh. Now 19 sources (new: ZDFheute, DW Deutsch, DER SPIEGEL, Süddeutsche, NPR); each feed loads on its own, so a slow one never blocks the rest, and the sources take turns instead of one site filling the screen.
    • Read right in Hain. A tap opens the article in a clean reading view: picture, source, time, headline, author, then the text with its pictures and charts. Aa changes text size, serif or sans, line spacing and colours (like the app, light, dark, sepia). Open website and Share stay at the top.
    • Paywall only when it is true. The "Paywall" mark shows only on articles Hain found cut off. Those show as far as the page itself shows them, with a hint and Open website – Hain never gets around a paywall.
    • Ask Pim about the article. Tap Pim in the corner: Summarise, Explain simply, Background or your own question. Pim answers only from the article, on your phone, and Continue in chat takes article, question and answer into a new chat.
    • Your briefing today. On top of the list: the 5–7 most important stories of the day with their sources, picked on your phone (stories many sources report count more) and written in one short sentence each by Pim when the brain is loaded. Make new writes it again. In News → Settings you can switch on a quiet morning note around 7 o'clock (off by default).
    • Settings page for News (gear at the top): reading view with a sample paragraph, pictures in the article and in the list, the morning note and your feeds. Pictures come from the media's own websites and show as "Images" in the network log.
    • Tablets and landscape: from 840 dp the list sits on the left and the article on the right.
  • Version 0.1.10.2 – UI polish, offline Wikipedia, tablets.
    • Frosted glass over the chat. The top bar and the message box now float as frosted glass over the chat – the chat scrolls under them and shows through softly. The title sits truly in the middle. Menus, the thinking picker, the ↓ button and the side panel use the same, a bit stronger glass; in battery saver and on phones older than Android 12 they are a calm solid surface.
    • One Pim status. Waiting, thinking, looking something up and writing are now one small element with Pim instead of several lines.
    • Tidier settings. The first page only lists the groups. Everything to download is under Models & packs: Knowledge, Brains, Multimedia, Voice and Extras, each on its own page with “2 of 3 on your phone”. News has its own entry.
    • Wikipedia without internet. Under Models & packs → Knowledge you can load Wikipedia for your phone (German: top articles ~136 MB or all ~4.7 GB; English: top ~297 MB or 1 million articles ~3 GB). With a pack, Pim's Wikipedia tool reads from your phone first – also in flight mode – and only goes online if the article is not in it.
    • News and honest steps. “Was gibt’s Neues?” without a topic brings the top headlines. When a tool step fails, the step says why in plain words, and Pim does not repeat the same search again and again.
    • Tablets and wide screens. From 840 dp width the chat list stays open on the left as a calm side panel, and Settings show the list on the left and the open page on the right.
  • Version 0.1.10.1 – charts, site icons, steadier cards (from 0.1.6.1).
    • Charts in cards. Numbers to compare or over time now come as a calm bar or line chart in Hain green. Try “Ich habe Mo 2, Di 3, Mi 1, Do 4 und Fr 2 Stunden gelernt, zeig das als Liniendiagramm” or ask for the weather of the next days as a chart. TalkBack reads the chart as one sentence (how many values, which is the highest).
    • Cards stay in shape. While Pim writes a card, a small grammar only lets through what a card can be, so lists, tables and charts break less often. Everything outside the card is written as before, and if something still goes wrong you simply see the text.
    • Site icons at the sources. The source chips under an answer now show the small icon of each website. Each icon is loaded once, straight from that website (never from an icon service), through the network gate (you see it in the network log, offline mode blocks it) and then kept on your phone. Don’t want that? Settings → Privacy → Source images off, then you see the first letter instead.
  • Version 0.1.4.1 – Pim picks the right tool more often. All tools were reworked for the small brain: shorter, clearer tool descriptions, "8 min" really becomes an 8-minute timer, "Freitag 18 Uhr" lands on the right day, "zu Fuß" or "Fahrrad" work for routes, and a half-broken tool call from the brain is repaired instead of showing up as code in the chat. If something is missing (a route without a destination, the weather without a place while location is off), Pim asks. Follow-ups like "und in München?" call the tool again, links you send are read. Spoken sums ("was ist 17 mal 23") and "Wie spät ist es?" are answered instantly without the brain. Measured with 52 test questions: right tool 88.5 % → 96.2 %.
  • Choose Pim's brain at the top. Tap "Hain · On this phone" at the top of the chat. A small frosted-glass menu shows the brains on your phone with a plain name ("Quick brain", "Balanced brain", "Smart brain"), the model and its size, and marks the one recommended for your phone. Tap another one and it loads in the background – a thin green line under the top bar shows how far it is; a running answer stops first. Hain remembers your pick. Brains that are not on your phone yet, and "More brains", open Knowledge packs. (Today the catalogue has one brain; more follow.)
  • Faster start for the release build. The release version of Hain is now shrunk and optimised (R8) and carries a "baseline profile": the parts that run at start and while you scroll through a chat are compiled ahead of time on your phone – also when you install Hain from GitHub or F-Droid, without Play. A test in CI installs this build on an emulator, checks that it starts and measures how fast. The test build app.hain.debug stays as it is.
  • Version 0.1.8 – private chat, app lock and export.
    • Private chat. Tap the eye at the top of an empty chat. A green bar says "Privater Chat": nothing is saved, the chat never shows up in the list or the search, the memory never sees it, and it is deleted as soon as you leave it (new chat, other chat, "Beenden" or closing Hain). Tools like weather and search still work.
    • App lock. Settings → Privacy → App lock: Hain asks for your fingerprint (or face) or your phone's PIN, pattern or password when you come back – right away, after 1 minute or after 5 minutes. Switching it on asks once to confirm it's you. Hain stores nothing for this; your phone checks. Without a screen lock on the phone you get a short hint instead. Coming back from the file picker or share sheet you opened in Hain does not lock.
    • Block screenshots. Also in Privacy: no screenshots or screen recordings of Hain, and a blank preview in recent apps.
    • Export a chat. In an open chat tap Share at the top (or ⋯ → Exportieren in the side panel): PDF or Markdown, to share with any app or to save where you choose. The PDF is set like a little document: title, date, "Du" and "Hain" (in green), paragraphs, lists, code on a grey band, page numbers. The thinking is left out.
    • Export all chats. Settings → Privacy → Export all chats saves one ZIP with every chat as a Markdown file (private chats are never in it).
  • Version 0.1.8: versions, waiting messages, sharing, widget.
    • Old versions stay. When you edit one of your messages or tap "ask again", the old version is no longer thrown away. Under the message you see ‹ 2/3 › – tap the arrows to switch between the versions, together with everything that came after them. Your choice is saved.
    • Send while Pim answers. You can type and send your next question while Pim is still writing. It waits above the message box ("wartet"), the ✕ takes it back, and it goes out on its own as soon as the answer is done. Stop ends only the current answer.
    • Calmer scrolling. The chat only follows new text while you are at the bottom. Scroll up to read and it stays where you are; a small frosted ↓ brings you back, and says "Neue Antwort" when something new came in.
    • Share into Hain. In any app tap Share → Frag Pim: a new chat opens with the text or link in the message box (a shared link keeps its page title). Nothing is sent until you tap send.
    • Widget and quick tile. Add the "Frag Pim" widget to your home screen: the field opens a new chat with the keyboard, + starts a new chat, below it your last chat. In the quick settings you can add the tile "Neuer Chat".
  • Version 0.1.10: Pim listens and talks. Tap the mic next to send and speak – tap again (or tap Fertig) when you are done; or hold the mic while you speak and let go. Slide off the button or tap ✕ to throw it away. Green bars show that Pim hears you, then “Pim schreibt mit…”, and the text lands in the message box, where you can still change it before sending. It works in German and English (the language of your answers) and completely on your phone: the first time, Pim asks for the mic (only then) and loads a speech pack once (German 166 MB, English 209 MB, also in Settings → Knowledge packs). The recording is never stored and never leaves the phone.
  • Read aloud. Under every answer there is now a speaker: Pim reads the answer sentence by sentence, without the Markdown signs (code blocks are skipped, links are read as their domain). Tap again to stop. For now this is your phone's own voice, a bit higher and faster like Pim; Pim's own voice comes later.
  • Version 0.1.4 – tools, the rest.
    • Repeating alarms. "Weck mich jeden Werktag um 6:30", "täglich um 7", "montags und donnerstags um 8": the card shows the days (Mo–Fr, Jeden Tag …) and your clock app gets a repeating alarm.
    • Pim says what really happened. After an alarm, timer, event or route Pim now says "vorbereitet – tipp auf Stellen" instead of "eingestellt", because nothing happens before your tap. The card says it too.
    • Without asking, if you like. New switch Settings → Privacy → Confirm phone actions (on by default). Off: the card counts down 3 seconds with Undo, then your clock, calendar or map app opens by itself. Only for answers written just now, never when you open an old chat.
    • Weather and Wikipedia as cards. Under the answer you now see a small weather card (place, temperature now, one line per day with rain chance and high/low) or a Wikipedia card (title, three lines, "Auf Wikipedia lesen" – opens only when you tap).
    • Weather where you are. Switch on Settings → Privacy → Location for weather and Android asks once. Then "Wie wird das Wetter?" without a place uses your phone's last rough location (no GPS search, no Google services); only about 1 km goes to Open-Meteo.
    • Web search: on, ask first, off. In Settings → Privacy. "Ask first": Pim asks "Darf ich kurz im Web suchen?" and searches only after your yes. "Off": no web search at all, Wikipedia and weather keep working.
    • The brain download shows in the network log like every other request, with the orange online dot while it runs.
  • Version 0.1.7.1: Pim's memory, part 2. Under an answer you now see what the memory did: "Gemerkt ✓ · Rückgängig" after "Merk dir …" (one tap takes it back) and "3 Erinnerungen genutzt" – tap it to see which memories Pim used. In Settings → Memory there is the new pack "Suche nach Bedeutung" (219 MB, download once): with it Pim also finds "mag keine Pilze" when you ask "Was soll ich heute kochen?". Two minutes after a chat (on the charger or with more than 30 % battery, never in private chats) Pim quietly looks for lasting facts in it, like "hat eine Katze namens Mo". They only land under Suggestions – nothing is used before your yes. When something changed ("wohnt jetzt in Hamburg"), the suggestion says "Ersetzt: wohnt in Berlin"; the old fact is kept, just no longer used. New tab Topics: your memories sorted (Likes, People, Places, School & work …) with a short note of your own per topic that Pim reads when it fits. The pack is also listed under Knowledge packs.
  • Version 0.1.9: Documents. Tap the paper clip in the message box → File or photo and pick a PDF, a photo of a page or a text file. Hain reads it on your phone ("Lese Seite 2 von 5 …"), the file waits as a chip above the box, then ask "Wie viel muss ich zahlen?" – Pim answers from the file and names the page ([S. 1]). Long files are searched instead of read whole. Scanned pages and photos need the text recognition: Hain asks "Texterkennung laden?" (about 14 MB, once, through the network log) and then reads everything offline, with a German fix for typical mistakes (Uberprüfung → Überprüfung, StraBe → Straße). My files shows all read files to attach again or delete, and lets you remove the pack. Only the text is kept, in its own encrypted database – never the file.
  • Version 0.1.5: News. Open the side panel → News: headlines of today, yesterday and before from a fixed mix of German and English sources (incl. junge Welt), your own feeds on top, or only your own feeds. Tap opens the article, a long press shares the link, Summarise lets Pim sum up a freely readable article in 5 points on your phone (paywalls are never bypassed; since 0.1.10.3 the reading view with "Ask Pim" replaces it). In the chat, ask "Was gibt es Neues zum Streik?" and Pim shows the headlines as a card. Feeds load only when you open News or ask Pim, and show as "News" in the network log.
  • Version 0.1.7: Pim remembers. Say "Merk dir, dass ich keine Pilze mag" or "Remember that I play the guitar" and Pim keeps it – right away, without thinking long, and says so in the answer. Later, when it fits ("Hast du ein Rezept für heute Abend mit Pilzen?"), Pim uses it. "Vergiss, dass ich keine Pilze mag" deletes it again. Pim can also save something on its own when you ask in other words (a small "Gemerkt" line shows above the answer). Private things like health are never used before your yes: they wait under Suggestions. Everything you can see and change in Settings → Memory: search, edit (pencil), delete (with "Undo"), switch the memory off, save all memories as a JSON file and load them again, or delete everything. Nothing leaves the phone; the memories are in the same encrypted database as your chats. For now Pim finds memories by their words ("Pilz" finds "Pilze"); finding them by meaning comes later.
  • Answer cards (0.1.6). For shopping lists, to-dos, study plans, comparisons or progress, Pim can now answer with a calm card instead of plain text: a list, a table, a checklist you tick off with a tap (the ticks stay with the chat), a progress bar and up to three buttons – copy, share or ask the next question for you. Try “Schreib mir eine Einkaufsliste für Pfannkuchen” or “Mach mir einen Lernplan für Mathe bis Freitag”. If the small brain writes a card that does not work, you simply see the text. Copying or sharing the answer gives readable text with your ticks.
  • Version 0.1.3.1. Hain now shows its version in Settings → About Hain (with build number and commit). How the numbers work is in docs/workflow/VERSIONING.md.
  • Frosted glass menus. The ⋯ menu, the long-press menu in the side panel and the thinking picker are now real frosted glass: the chat behind them shows through, softly blurred, with a thin light edge and a soft shadow. The rest of the screen only dims a little. On phones older than Android 12 the menus are a solid card.
  • More Pim in the chat. Pim is bigger while he thinks, sits small next to the newest answer, peeks in while he looks something up, is happy for a moment when the answer is done and gets a fright on an error. On the empty chat he is a bit bigger too. "Reduce motion" keeps him still.
  • New "About Hain" page. Pim at the top, then website, code on GitHub, version, licence and the open-source licences. Links open in your browser only when you tap them.
  • Optional update check. After a few chats Hain asks once whether it may look for updates. If you say yes, it asks GitHub once a day at start whether there is a newer version (channel "Stable" or "Nightly") and shows a calm banner; a tap opens the release page. Nothing is installed by itself, nothing about you is sent, and the request shows in the network log. You can change it or check right now in About Hain.
  • Developer mode for tinkerers. Tap the version in About Hain 7 times. Under Settings → Developer you can try your own GGUF model from Hugging Face (type e.g. LiquidAI/LFM3-1.7B-GGUF, pick a file, see its size and whether it fits your phone), change temperature, top_k, top_p, min_p, repeat penalty, context size, answer length, seed and thinking, set your own system prompt and see tokens per second under answers. "Back to defaults" and switching it off bring Hain's normal settings back. Untested models may answer badly, and tools are off with them.
  • Fixed: back arrow. The back button on settings pages (Look, Developer, About Hain, …) now points left instead of right.
  • Fixed: no made-up sources. When Pim answered from memory, the small brain sometimes still wrote “[1]” and a fake source line (“Wikipedia article … if available”), talked about not needing a tool or started with “Fakt:”. Now “[1]” only appears when Pim really used a tool and there is a source chip for it; everything else is cleaned out of the answer, also while it streams. Code blocks and links stay untouched.
  • New app icon “Pim im Wald”, and you choose the look. Pim, as a glossy, see-through mint glass figure, stands in front of a soft forest of round trees with mist and a light sky. There is also a flat version in plain colours. Pick it at first start (right after the language) or any time in Settings → Look → App icon (3D is the default). The new icon shows up once you leave Hain; your home screen may need a few seconds. Themed icons (Android 13+) show Pim's outline, and the test build has a small “dev” tag.
  • Softer menus. A long press on a chat in the side panel now opens its menu too.
  • New website look. The website (https://oskar26.github.io/hain/) now looks like the app's calm style “Lichtung”, in light and dark, with real screenshots and a clear mark on every feature: green “Available now” or grey “Coming soon”.
  • The 3D redesign. Hain now looks like the pictures it was meant to look like: settings groups, tool cards, suggestions, knowledge packs and the side panel are glass tiles that glow from inside in their own soft colour, with small glossy 3D icons (weather, book, leaf, shield …). Pim is a glossy 3D jelly with white oval eyes. The empty chat greets you big and light ("Guten Abend, was kann ich für dich tun?") above three suggestion tiles, the message box is a big white card with a soft green glow and a round domed send button. The welcome tour starts with a cloud of shiny bubbles and a round Pim button. Buttons press in a little when you tap them. Dark mode glows too; "Reduce motion" stops all movement but keeps the depth. The chat text itself stays calm.
  • Thinking level in the message box. Tap the brain in the message box and pick Auto (Pim decides), Schnell (answers right away) or Gründlich (thinks longer, for hard questions). The bar above the box is gone; next to the brain you see the level when it is not Auto. Same setting as Settings → Answers.
  • Long texts fixed. Very long own messages fold after 14 lines ("Mehr anzeigen"), the chat no longer pulls you down while you scroll up to read a long answer (a small button brings you back), tables and code scroll sideways, long chat titles, tool lines and menu entries end neatly instead of being cut off, the message box grows to 6 lines and then scrolls with the buttons staying put; checked with 200 % font, a small 360 dp screen and landscape.
  • Softer screen changes. The start page now glides into the chat, settings slide in and out.
  • Alarm, timer, calendar and directions – always with your OK. Say "Stell mir einen Wecker um 6:30", "Timer 10 Minuten", "Trag Zahnarzt morgen um 15 Uhr ein" or "Navigier mich zum Hauptbahnhof". Pim prepares it and shows a small card under the answer; nothing happens until you tap Stellen, Starten or Eintragen (or Abbrechen). Then your clock, calendar or map app takes over – the calendar opens already filled in, so Hain needs no calendar permission. If your phone has no app for it, the card tells you. Works in offline mode too.
  • Your own search. Run your own SearXNG? Put its address in Settings → Privacy and Pim asks it first.
  • Search gives DuckDuckGo a break. When DuckDuckGo answers with its "are you a bot?" page, Hain leaves it alone for 10 minutes and uses the other sources instead.
  • Tools in every message. Before, Pim used a tool only once per chat and afterwards pretended to have "looked it up". Now Pim remembers which tools it really used, calls them again for every new question (weather, Wikipedia, search) and never claims to have looked something up without doing it.
  • Pim searches the web – without an API key. Ask "Recherchier mal: Wie viel Strom spart eine Wärmepumpe?" and Pim searches (DuckDuckGo, SearXNG or Wikipedia), reads the 3 best pages at the same time and answers from them. You watch every step above the answer ("Suche · Wärmepumpe ✓", "3 Seiten gelesen ✓"), the pages Pim really read are the source chips below. If it needs more, Pim searches a second time. In the answer mode Schnell Pim searches once and reads one page.
  • Send Pim a link. "Was steht hier: https://…" – Pim reads the page and sums it up.
  • Every search and page shows up in the network log (Settings → Privacy); offline mode switches all of it off.
  • A calmer, more unified look. Hain got one design for every screen: a new light font (Hanken Grotesk), soft white cards, the same rounded corners everywhere, small glass menus and the same gentle motion on every screen – in light and dark mode. Settings use real switches and one kind of choice buttons. "Reduce motion" in Settings → Look stops all of it.
  • Message actions like in Gemini. Tap one of your messages and "edit" and "copy" fade in below it. Under every answer there is a quiet row: copy (a green tick shows it worked), share, thumbs up or down (only saved on your phone, never sent) and ask again. The long-press menu is gone.
  • Nicer chat list. The ⋯ next to a chat opens a small glass menu right below it, which grows out of the button; the chat stays marked while it is open, and the highlight now covers the whole row. The side panel slides in and out smoothly, and the list glides when you pin or delete a chat.
  • Pim can look things up now. Ask "Wie wird das Wetter morgen in Paris?" or "Wer war Ada Lovelace?" and Pim fetches the weather (Open-Meteo) or a Wikipedia summary, then answers from it. Above the answer you see what Pim did ("Wetter · Paris ✓"), below it the sources as chips – tap one to open the page.
  • Exact maths. Pim calculates with a real calculator instead of guessing: "15% von 80", "sqrt(2)", "5 km in Meilen", "100 °F in °C". Type only a sum like "12*7" and the result is there at once, without waiting for the brain.
  • You see when Hain goes online. While a request runs, an orange "Online" dot shows in the top bar. Settings → Privacy lists every request of the last 7 days (when, where to, why, how big) – without what you asked, unless you switch on "Show full addresses". Offline mode there stops all of it.
  • Pim answers in German when you write German. Pim's instructions are now fully in German on a German phone (or with answer language "Deutsch"), end with a clear language rule, and every answer gets a tiny "answer in German/English" note. No more English or half-English replies to "wie geht es dir". And it works for every language: write French, Spanish, Turkish, Polish, Russian or Arabic, and Pim answers in that language (the small brain is best in German and English). Pim also sounds more natural: a few warm sentences instead of one generic line, no "Hallo!" in front of every answer, and honest when something is uncertain.
  • Faster. The test APK is now built like a real release (not "debuggable"), so screens and scrolling should feel clearly smoother. Pim and the green thinking glow move without slowing the rest of the screen down.
  • The brain remembers the chat. Before, every answer made the brain read the whole chat again. Now it continues where it stopped, so answers in longer chats start sooner. While it wakes up, the top bar shows how far it is (in %).
  • Stop means stop. Tapping stop ends the answer at once, even while Pim is still reading your message.
  • Chat titles by themselves. After the first answer Pim gives the chat a short title. A name you typed yourself is never changed.
  • Your own messages. Tap one of your messages to copy it or to edit it: Pim then answers again from there. "Ask again" works on every answer, also the first one.
  • Brain later. At the first start you can skip the download (or let it run in the background) and look around first. The chat then shows a small, quiet reminder instead of an error.
  • Keyboard fixed. With the keyboard open in an empty chat the top bar stays put and Pim simply gets smaller.

Install in 3 steps

You don't need to be technical. Hain is not in the Play Store yet, so you install it directly from GitHub.

  1. Download. Open the nightly release on your phone and tap hain-debug.apk.
  2. Allow and install. Open the downloaded file. Android will ask whether your browser may "install unknown apps". Tap Settings, switch on Allow from this source, go back and tap Install. This only lets this one app (your browser) install apps. You can switch it off again afterwards under Settings → Apps → Special app access → Install unknown apps. Google Play Protect may show a warning because Hain isn't from the Play Store; that's expected.
  3. Open Hain. Pim welcomes you and downloads the brain (about 1 GB). Use Wi-Fi if you can, or skip it and get it later from the chat. After that, Hain works without internet.

Updating: download the newest hain-debug.apk from the same page and install it over the old one. Your chats stay. Every change to main builds a new nightly, and all nightlies are signed with the same key, so they install as an update. (In the alpha, a big update can still reset chats or settings.)

System requirements

Minimum Recommended
Android 10 (API 29) newer is fine
Memory (RAM) 4 GB 6 GB or more
Free storage about 1.5 GB (brain 1.0 GB + app) more for optional packs
Internet only for the first download Wi-Fi for knowledge packs

No Google services needed. Smaller phones may be slow; Hain tells you which knowledge packs fit your device.

How it works

flowchart LR
    You([🙂 You]) --> App["📱 Hain app<br/>on your phone"]
    App --> LLM["⚙️ llama.cpp<br/>runs the AI on the phone"]
    LLM --> Brain[("🧠 Brain<br/>LFM3 1.7B, 1 GB")]
    App --> DB[("🔒 Encrypted chats<br/>& settings")]
    App -. "only when you ask<br/>(weather, search, packs)" .-> Gate{{"🛡️ NetworkGate<br/>one gate, visible log"}}
    Gate -.-> Web((🌐 Internet))
Loading

Everything inside the phone works offline. Hain goes online only to download packs you pick, or when you ask for something from the internet (like the weather or a web search). All of that goes through one gate, the NetworkGate, which lists where each request went. Settings → Internet has one main switch and a plain list of what may go online.

Knowledge packs

Hain speaks of "knowledge packs" instead of "models". Only the brain is needed; everything else is optional.

Pack Model Size Purpose
Brain (base) LFM3-1.7B QAD Q4_0 1.05 GB chat, tools, memory, thinking
Omni brain (optional) LFM3-Omni-2B Q4_0 (text) 1.05 GB chat, tools, memory; no thinking out loud, fewer unneeded tools
Big brain (optional) Jan-v3.5-4B Q4_K_M 2.7 GB stronger tool use; offered from 8 GB RAM, recommended from 12 GB
Remember & files LFM2.5-Embedding-350M ~0.2 GB search in memory, chats, files
Reading text PaddleOCR PP-OCRv5 mobile (detection + Latin + line orientation, ONNX) 14 MB scanned PDFs and photos, without Google (asked when first needed)
Dictation Moonshine Streaming Small (ONNX int8) 166 MB (DE) / 209 MB (EN) microphone, DE + EN, loads on first use
See + talk (optional) LFM3-Omni-2B 1.65 GB photos, voice mode
Image generation (optional) SD 1.5 + DMD2 1.1 GB only phones with 8 GB RAM+

Details: docs/specs/MODELS.md.

Privacy

  • No account, no analytics, no ads. No telemetry, no Google Play Services, no Firebase.
  • Your data stays on the phone. Chats and settings are stored in an encrypted database; the key is kept in Android's secure keystore.
  • Not used for training. Your chats are not sent anywhere and are not used to train any model.
  • Online only when needed. Hain goes online to download a knowledge pack, or when Pim looks something up for you (weather, Wikipedia). Only the short question goes out, never your chat. Each lookup shows up in the network log (Settings → Privacy), and offline mode turns it off completely.

Details: docs/specs/ARCHITECTURE.md.

How AI is used

In the app: Hain runs an open language model (LFM3 1.7B by Liquid AI, optionally LFM3-Omni 2B) on your phone. It can be wrong, make things up, or sound more sure than it is. Check anything important, especially health, money and legal questions. Hain does not replace a doctor, a lawyer or therapy. Actions that reach other people (SMS, calls, mail) will always need your OK.

Building the app: Hain is made by one person (Oskar) together with AI coding agents. Large parts of the code, docs and graphics are written or drafted by AI (an AI assistant plus local models via llama.cpp). Every change goes through a pull request that a human reviews, tests and merges. If you find code that looks copied or wrong, please open an issue.

Principles

  • Local first. The model, your chats and your memory stay on the device, encrypted.
  • Online only when visible. Every network request goes through one gate and shows up in a log you can read.
  • Own code, no forks. Libraries like llama.cpp are dependencies (git submodule), never copied or modified.
  • Light on storage. A small base pack (~1 GB brain), everything big is an optional download.
  • Simple for everyone. Plain language, no jargon, large text, light and dark.
  • Honest. Hain says when it's unsure and asks before acting for you.

Who it is for: people who care about privacy but aren't tech experts, and people who are critical of power-hungry data centres. Teachers, students, seniors with their first smartphone, F-Droid fans: everyone who wants a helpful AI without handing their data to anyone.

Status and roadmap

Version What When
nightly Every merge to main, for testers ongoing
0.2.0 First version for friends: chat that stays on your phone, settings, knowledge packs, tools (calculator, weather, Wikipedia, web search, timer), news, memory, private chats soon, no fixed date
1.0 Everything in the concept: tables and forms in documents, questions about photos, voice, mini-apps "forest", F-Droid 2027, no fixed date

Dates are goals, not promises. The detailed plan is in docs/workflow/ROADMAP.md, the current state in docs/workflow/STATUS.md.

FAQ

Is Hain really free?

Yes. Hain is free and open source under the GPL-3.0. There are no ads, no subscription and no paid "pro" version.

Does it work without internet?

Yes. After the first download of the brain (about 1 GB), chatting works fully offline, even in flight mode. You only need internet for new knowledge packs and, later, for things like weather or web search.

Will it work on my phone?

You need Android 10 or newer. The brain needs at least 4 GB of RAM; 6 GB or more is recommended. Hain checks your phone and tells you which packs fit. iPhones are not supported.

Is it safe to install an app from outside the Play Store?

Installing from GitHub is normal for open-source apps. The whole source code is public, and every APK is built automatically by GitHub Actions from that code. Only install Hain from the official release page.

How good is it compared to ChatGPT?

The brain is much smaller than cloud models, so it knows less and makes more mistakes, especially with facts and long texts. In return it is fast, private and works offline. For everyday questions, writing help and explanations it is often good enough.

Are my chats used to train AI?

No. Your chats never leave your phone, so nobody can use them for training.

Why does it say "nightly" and "debug"?

Hain is in alpha. The nightly is built automatically after every change, for testers. The first proper release is 0.2.0, and later Hain should come to F-Droid.

I found a bug or have an idea. Where do I tell you?

Please open an issue: what you did, what happened, your phone model and a screenshot if you can. See CONTRIBUTING.md.

Contributing

Ideas, bug reports, translations and pull requests are welcome. Start with CONTRIBUTING.md. The easiest way to help: install the nightly, use it, and open an issue with what broke or what you'd like. Pick a form: 🐞 bug, ✨ feature request, 🌱 answer quality, 🌍 translation and texts, or 💬 question (German or English, both fine).

Working on the code: humans and coding agents start with AGENTS.md: one task from TASKS.md per session, one commit per task (T-XXX: title), all checks green, status and handoff log updated.

Build from source

git clone --recursive https://github.com/oskar26/hain.git
cd hain
./gradlew assembleDebug                  # full build incl. llama.cpp (needs NDK 27 + CMake 3.31)
./gradlew assembleDebug -Phain.native=false   # Kotlin only, no native code
./gradlew testDebugUnitTest ktlintCheck detekt
python3 tools/check_strings.py           # every UI string in EN and DE

JDK 21 is required (see KNOWN_ISSUES.md). CI builds the APK for every pull request (.github/workflows/apk.yml).

Tech

Kotlin + Jetpack Compose (no Material 3, own design system), Hilt, Room (encrypted with SQLCipher), DataStore, WorkManager, OkHttp, llama.cpp via JNI with runtime CPU selection.

Modules: app, core-* (llm, data, tools, ui, cards, memory, docs, voice, models), feature-* (chat, onboarding, settings, news, memory, image).

Architecture: docs/specs/ARCHITECTURE.md · Design: docs/specs/DESIGN_SYSTEM.md · Libraries & licences: docs/specs/LICENSES.md · Concept (DE): docs/concept/KONZEPT.md

Auf Deutsch

Hain ist ein privater KI-Assistent fürs Android-Handy, der komplett auf dem Gerät läuft: chatten, rechnen, Wetter und Wikipedia nachschauen, im Web suchen, Nachrichten aus einem festen Mix (inkl. junge Welt) oder eigenen Feeds mit Bildern direkt in der App lesen, mit täglichem Briefing und Fragen an Pim zum Artikel, Wecker, Timer, Termine und Routen vorbereiten (du bestätigst jedes Mal mit einem Tipp), sich Dinge merken („Merk dir …“), Listen und Checklisten als Karten zeigen, private Chats führen, Chats exportieren, Nachrichten diktieren (Mikro neben Senden, Deutsch und Englisch, alles auf dem Handy), Antworten vorlesen und deine PDFs, Fotos von Seiten und Textdateien verstehen (Büroklammer, Texterkennung auf dem Handy). Wikipedia gibt es auch als Paket fürs Handy (ohne Internet). Texte, Links, PDFs und Fotos kannst du aus jeder anderen App in Hain teilen, und auf Tablets bleibt die Chat-Liste links offen, Modelle & Pakete und das Gedächtnis zeigen zwei Spalten. Auf starken Handys (ab 8 GB Arbeitsspeicher) kannst du zusätzlich das freiwillige „Große Gehirn“ laden (Jan-v3.5-4B): wählt Werkzeuge zuverlässiger, antwortet aber langsamer; Standard-Gehirn ist LFM3 1.7B (denkt bei Bedarf laut nach), LFM3-Omni 2B gibt es freiwillig. Keine Cloud, kein Konto, keine API-Schlüssel. Ins Internet geht Hain nur, wenn du etwas brauchst, und zeigt dir genau, wohin die Anfrage geht. Das ganze Konzept steht in docs/concept/KONZEPT.md.

Installieren: Auf dem Handy die Nightly-Seite öffnen, hain-debug.apk laden, beim Öffnen „Unbekannte Apps installieren“ für den Browser erlauben, installieren. Beim ersten Start lädt Pim das Gehirn (ca. 1 GB, am besten im WLAN) – das kannst du auch überspringen und später im Chat nachholen. Updates einfach drüber installieren, Chats und Gehirn bleiben erhalten.

Stand: Hain ist noch in Entwicklung (Alpha). Version 0.2.0 für Freundinnen und Freunde kommt bald, ohne festes Datum, Version 1.0 für 2027. Beim Programmieren helfen KI-Agenten, jede Änderung wird aber von einem Menschen geprüft. Die KI in der App kann sich irren, prüf wichtige Antworten lieber nach. Mitmachen: Fehler und Wünsche einfach als Issue melden, siehe CONTRIBUTING.md.

Licence

GPL-3.0. Model weights are not bundled and keep their own licences (e.g. LFM Open License v1.0 for LFM3 and LFM3-Omni-2B, Apache-2.0 for the optional Jan-v3.5-4B). The app lists every component with its licence text under Settings → About Hain → Open-source licences (source: tools/licenses/oss.toml, checked in CI).

Name & Pim / Trademarks

The code is free (GPL-3.0-or-later), but the name “Hain”, the character Pim (look, animations, voice) and the app icon/logo mark the official project. Forks are welcome under their own name, with their own mascot and icon. Sharing official builds, writing about Hain and packaging it (e.g. F-Droid) are fine. Details: TRADEMARKS.md.

Der Code ist frei, aber Name, Pim und Icon kennzeichnen das offizielle Projekt. Forks bitte mit eigenem Namen, eigener Figur und eigenem Icon. Mehr in TRADEMARKS.md.

Support / Unterstützen

Coming soon: a way to sponsor Hain will follow soon. Until then, the best help is a ⭐ star, an issue with a bug or an idea, or telling a friend about Hain.

Bald: Eine Möglichkeit, Hain finanziell zu unterstützen, folgt bald. Bis dahin hilft ein ⭐ Stern, ein Issue mit Fehler oder Idee, oder Hain weiterzusagen.

Credits

Made with 💚 · Back to top ↑

About

Hain - private, local AI chat for Android

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages