[{"data":1,"prerenderedAt":494},["ShallowReactive",2],{"project-44524544":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":48,"post_text":50,"what":51,"said":96,"maker_in_thread":218,"shape":230,"grid":234,"attempts":455,"same_week":456,"maker_shows":49,"maker_hidden":486,"reader_version":487,"card":488},"44524544","Cactus","Ollama for Smartphones","title","Show HN: Cactus – Ollama for Smartphones","https:\u002F\u002Fgithub.com\u002Fcactus-compute\u002Fcactus","github.com","HenryNdubuaku",1752175259,2025,231,82,265,3837,7,"notable","ai","on-device llm framework","library",[24,25,26,27,28],"on-device llm","mobile llm","gguf","flutter llm","react native llm","curious",0.039,{"positive":32,"neutral":33,"mixed":34,"critical":35},11,39,1,12,63,{"idea":38,"execution":41,"design":44,"performance":45,"privacy":46,"docs":47},{"positive":39,"critical":40},3,4,{"positive":42,"critical":43},0,2,{"positive":43,"critical":43},{"positive":39,"critical":34},{"positive":42,"critical":42},{"positive":42,"critical":43},[42,39,34,39,39,42,49,39,49,39,39,39,49,34,39,49,34,39,39,34,39,42,49,39,34,49,49,39,39,49,42,34,34,39,49,49,34,34,34,34],5,"Hey HN, Henry and Roman here - we've been building a cross-platform framework for deploying LLMs, VLMs, Embedding Models and TTS models locally on smartphones.\n\nOllama enables deploying LLMs models locally on laptops and edge severs, Cactus enables deploying on phones. Deploying directly on phones facilitates building AI apps and agents capable of phone use without breaking privacy, supports real-time inference with no latency, we have seen personalised RAG pipelines for users and more.\n\nApple and Google actively went into local AI models recently with the launch of Apple Foundation Frameworks",{"problem":52,"audience":58,"pricing":66,"motivation":67,"time_to_build":66,"stack":71,"openness":93,"stage":94,"team_size":95},{"value":53,"source":54,"evidence":55},"Running LLMs, VLMs and TTS models locally on phones for privacy and low latency","maker",[56],{"id":57},"post",{"value":59,"source":54,"evidence":60},"Cross-platform mobile app developers building AI apps",[61,62],{"id":57},{"id":63,"by":64,"text":65},"44525911","rshemet","True - but Cactus is not just an app. We are a dev toolkit to run LLMs cross-platform locally in any app you like.",null,{"value":68,"source":54,"evidence":69},"Bring local AI models to phones, since Apple and Google platform options are platform-specific",[70],{"id":57},[72,76,80,84],{"value":73,"source":54,"evidence":74},"Flutter",[75],{"id":57},{"value":77,"source":54,"evidence":78},"React Native",[79],{"id":57},{"value":81,"source":54,"evidence":82},"Kotlin Multi-platform",[83],{"id":57},{"value":85,"source":54,"evidence":86},"llama.cpp \u002F GGUF",[87,90],{"id":88,"by":64,"text":89},"44526266","reminds me of - \"You are, undoubtedly, the worst pirate i have ever heard of\" - \"Ah, but you have heard of me\" Yes, we are indeed a young project. Not two weeks, but a couple of…",{"id":91,"by":11,"text":92},"44527553","Thanks for the comment, but: 1) The commit history goes back to April. 2) LlaMa.cpp licence is included in the Repo where necessary like Ollama, until it is deprecated. 3)…","open_source","beta","team",{"praise":97,"objections":117,"requests":142,"questions":172,"alternatives":190},[98,106],{"value":99,"source":100,"evidence":101},"Simple, clean API that is easy to integrate","commenter",[102],{"id":103,"by":104,"text":105},"44532973","awaseem","This is actually crazy. The API is so simple! I tried to do this on Swift using LLM.swift and it went okay, excited to try this on RN",{"value":107,"source":100,"evidence":108},"Good performance on phones, fast local responses",[109,113],{"id":110,"by":111,"text":112},"44530591","nunobrito","I've installed the Android version from https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.rshemetsubuser.myapp It is fantastic. Compared to another program I had installed a year…",{"id":114,"by":115,"text":116},"44526590","pj_mukh","Amazing, this is so so useful. Thank you especially for the phone model vs tok\u002Fs breakdown. Do you have such tables for more models? For models even leaner than Gemma3 1B. How…",[118,129,135],{"value":119,"source":100,"evidence":120},"Wraps llama.cpp, so the framework is thin and the 'Ollama for phones' framing is questioned",[121,125],{"id":122,"by":123,"text":124},"44524805","max-privatevoid","They literally vendored llama.cpp and they STILL called it \"Ollama for *\". Georgi cannot be vindicated hard enough.",{"id":126,"by":127,"text":128},"44526188","refulgentis","[flagged]",{"value":130,"source":100,"evidence":131},"Model sharing across apps not yet possible; each app downloads its own copy",[132],{"id":133,"by":64,"text":134},"44526336","Great question. Currently, each app is sandboxed - so each model file is downloaded inside each app's sandbox. We're working on enabling file sharing across multiple apps so you…",{"value":136,"source":100,"evidence":137},"Demo app lacks dark mode and crashes on some custom GGUF models",[138],{"id":139,"by":140,"text":141},"44535678","pxc","This is a cool app! I'm happy to play with it. Some feedback: 1. The lack of a dark mode is an accessibility issue for me. I have a genetic condition that causes severe light…",[143,147,158,165],{"value":144,"source":100,"evidence":145},"Dark mode and better contrast in the demo app",[146],{"id":139,"by":140,"text":141},{"value":148,"source":100,"evidence":149},"Support for GPU\u002FNPU acceleration on Android",[150,154],{"id":151,"by":152,"text":153},"44524990","politelemon","Very nice, good work. I think you should add the chat app links on the readme, so that visitors get a good idea of what the framework is capable of. The performance is quite…",{"id":155,"by":156,"text":157},"44529772","pzo","Is this using only llama.cpp as inference engine? How is this days support there on NPU and GPU? Not sure if LLM can run on NPU but many models like STT and TTS and vision often…",{"value":159,"source":100,"evidence":160},"Download API separate from model initialization",[161],{"id":162,"by":163,"text":164},"44526013","teaearlgraycold","Does this download models at runtime? I would have expected a different API for that. I understand that you don’t want to include a multi-gig model in your app. But the mobile…",{"value":166,"source":100,"evidence":167},"APK that does not require Google Play services",[168],{"id":169,"by":170,"text":171},"44530897","ekianjo","appreciate if you can provide a apk that does not require google play services to run...",[173,183],{"value":174,"source":100,"evidence":175},"How does model sharing and serving to other apps work",[176,180],{"id":177,"by":178,"text":179},"44526025","jadbox","How does it work? How does one model on the device get shared to many apps? Does each app have it's own inference sdk running or is there one inference engine shared to many apps…",{"id":181,"by":127,"text":182},"44528069","How does writing a model into an App Group container enable your framework to enable an app to enable a local LLM server that 3rd party apps can make calls to on iOS?[^1] How…",{"value":184,"source":100,"evidence":185},"How does it compare to existing apps like ChatterUI",[186],{"id":187,"by":188,"text":189},"44537399","wanderingmind","I understand this is targetted towarda devwlopers, bur Can someone explain why should I go through this complex install process instead of just using ChatterUI? It can handle…",[191,199,203,212],{"value":192,"source":100,"evidence":193},"Ollama",[194,198],{"id":195,"by":196,"text":197},"44525807","throw777373","Ollama runs on Android just fine via Termux. I use it with 5GB models. They even recently added ollama package, there is no longer need to compile it from source code.",{"id":122,"by":123,"text":124},{"value":200,"source":100,"evidence":201},"ChatterUI",[202],{"id":187,"by":188,"text":189},{"value":204,"source":100,"evidence":205},"Google AI Edge \u002F MediaPipe",[206,209],{"id":207,"by":208,"text":128},"44525324","deepdarkforest",{"id":210,"by":64,"text":211},"44525596","Thanks for the feedback. You're right to point out that Google AI Edge is cross-platform and more flexible than our phrasing suggested. The core distinction is in the ecosystem:…",{"value":213,"source":100,"evidence":214},"llama.cpp",[215],{"id":216,"by":64,"text":217},"44524854","didn't Ollama vendor Llama cpp too? Most projects typically start with llama.cpp and then move away to proprietary kernels",{"comments":219,"answered":34,"key":220},6,[221,224,227],{"id":222,"text":223},"44528591","We are writing our own backend, but tflite (now called LiteRT) was not faster than GGML when we tested and GGML is already well supported. But we are moving away completely anyway.",{"id":225,"text":226},"44526192","Please feel free to join our Discord: https:\u002F\u002Fdiscord.com\u002Finvite\u002FbNurx3AXTJ",{"id":228,"text":229},"44540078","Thanks!",{"commenters":231,"max_depth":18,"maker_replies":219,"first_comment_mins":232,"lifespan_hours":233},44,33,96,[235,239,241,245,247,249,251,253,255,259,261,263,267,269,272,276,278,281,285,288,292,295,296,300,304,307,312,314,317,319,321,323,325,326,329,331,334,336,340,342,346,348,352,357,358,360,364,366,369,371,373,374,376,378,383,387,389,393,395,399,402,404,407,408,410,414,417,420,422,425,429,430,434,436,439,440,441,444,446,447,449,451],[236,42,42,237,238,42],"44526027","other\u002Fneutral\u002Fnone","Uehreka",[240,42,42,237,64,42],"44526154",[242,34,39,243,244,42],"44528773","project\u002Fneutral\u002Fnone","azinman2",[246,34,42,237,156,42],"44529726",[195,43,34,248,196,42],"project\u002Fcritical\u002Fidea",[63,43,39,250,64,42],"maker\u002Fneutral\u002Fidea",[177,43,39,252,178,42],"project\u002Fneutral\u002Fexecution",[133,43,39,254,64,42],"maker\u002Fneutral\u002Fexecution",[256,43,39,257,258,42],"44528646","project\u002Fneutral\u002Fdesign","pogue",[260,43,39,243,64,42],"44534214",[262,43,42,237,258,42],"44534318",[264,43,42,265,266,42],"44530291","commenter\u002Fneutral\u002Fnone","v5v3",[114,39,49,268,115,42],"project\u002Fpositive\u002Fperformance",[270,39,39,271,64,42],"44526739","maker\u002Fneutral\u002Fperformance",[273,39,39,274,275,42],"44526940","project\u002Fneutral\u002Fperformance","Reebz",[277,39,39,271,64,42],"44527107",[279,39,39,274,280,42],"44527108","pickettd",[282,40,49,283,284,42],"44530017","project\u002Fpositive\u002Fdesign","neurostimulant",[286,40,39,287,64,42],"44534168","maker\u002Fneutral\u002Fdesign",[289,49,39,290,291,42],"44525242","project\u002Fneutral\u002Fprivacy","khalel",[293,49,39,294,64,42],"44525382","maker\u002Fneutral\u002Fprivacy",[155,219,39,274,156,42],[297,219,39,298,299,42],"44533874","project\u002Fneutral\u002Fdocs","liuliu",[301,18,39,302,303,42],"44527019","project\u002Fneutral\u002Fidea","smcleod",[305,18,39,306,64,42],"44534184","maker\u002Fneutral\u002Fnone",[308,309,49,310,311,42],"44524965",8,"project\u002Fpositive\u002Fidea","felarof",[313,309,42,237,64,42],"44525166",[162,315,34,316,163,42],9,"project\u002Fcritical\u002Fdesign",[318,315,39,287,64,42],"44526133",[320,315,39,287,163,42],"44526302",[103,322,49,283,104,42],10,[324,322,39,306,64,42],"44534130",[139,32,34,316,140,42],[327,35,39,302,328,42],"44524812","ttouch",[330,35,39,250,64,42],"44524935",[151,332,39,333,152,42],13,"project\u002Fmixed\u002Fperformance",[335,332,39,271,64,42],"44525141",[337,338,39,302,339,42],"44525273",14,"matthewolfe",[341,338,39,250,64,42],"44525425",[343,338,42,344,345,42],"44525998","commenter\u002Fneutral\u002Fidea","bangaladore",[187,347,34,248,188,42],15,[349,350,49,310,351,42],"44564462",16,"mounir-portia",[353,354,34,355,356,42],"44527324",17,"project\u002Fcritical\u002Fperformance","ipsum2",[222,354,42,271,11,34],[225,359,42,306,11,34],18,[361,362,49,268,363,42],"44527020",19,"K0balt",[169,365,39,243,170,42],20,[367,368,39,302,266,42],"44530312",21,[370,368,39,306,64,42],"44534187",[122,372,34,248,123,42],22,[216,372,42,265,64,42],[110,375,49,268,111,42],23,[377,375,39,271,64,42],"44534199",[379,380,49,381,382,42],"44528566",24,"project\u002Fpositive\u002Fnone","tderflinger",[384,385,39,302,386,42],"44527318",25,"Scene_Cast2",[388,385,39,250,64,42],"44527328",[390,391,39,302,392,42],"44525158",26,"yrcyrc",[394,391,39,250,64,42],"44525211",[396,397,39,298,398,42],"44524873",27,"xnx",[400,397,39,401,64,42],"44524897","maker\u002Fneutral\u002Fdocs",[403,397,49,381,111,42],"44530467",[207,405,42,406,208,42],28,"commenter\u002Fcritical\u002Fidea",[210,405,42,344,64,42],[409,405,39,274,208,42],"44525799",[411,405,34,412,413,42],"44530435","maker\u002Fcritical\u002Fdocs","blks",[415,405,34,412,416,42],"44530911","poly2it",[418,405,39,274,419,42],"44525702","DarmokJalad1701",[421,405,39,243,115,42],"44528378",[423,405,42,265,424,42],"44534059","dang",[426,427,49,381,428,42],"44529079",29,"realjoe",[228,427,42,265,11,34],[431,432,49,310,433,42],"44530738",30,"anupj",[435,432,42,265,64,42],"44534177",[126,437,34,438,127,42],31,"maker\u002Fcritical\u002Fidea",[88,437,39,250,64,42],[91,437,42,254,11,34],[442,437,34,443,127,42],"44527661","maker\u002Fcritical\u002Fexecution",[445,437,42,252,11,34],"44528044",[181,437,34,443,127,42],[448,437,42,265,11,34],"44528640",[450,437,42,265,127,42],"44528858",[452,437,34,453,454,42],"44529813","maker\u002Fcritical\u002Fnone","jeffhuys",[],[457,462,467,472,477,481],{"id":458,"name":459,"points":460,"category":461},"44522683","nodaysoff.run",958,"creative",{"id":463,"name":464,"points":465,"category":466},"44572377","Shoggoth Mini",610,"hardware",{"id":468,"name":469,"points":470,"category":471},"44526015","Pangolin",500,"infrastructure",{"id":473,"name":474,"points":475,"category":476},"44556684","Refine",408,"productivity",{"id":478,"name":479,"points":480,"category":476},"44523409","BrowserOS",291,{"id":482,"name":483,"points":484,"category":485},"44526322","Bedrock",221,"dev_tools",false,"v2",{"id":489,"name":5,"line":6,"ai":486,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":490,"top":18,"kw":491,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":492,"url":9,"mix":493,"praise":99,"objection":119,"sub":21},44524544,0.04,[24,25,26,27,28],"0313305353335135133130531553350113551111",[32,33,34,35],1793991125376]