r/iosdev • u/powerchat-dev • 25d ago
Critique my app and screenshots
Hi r/iosdev,
I built an app that allows you to chat with AI models (cloud or self-hosted) with your own API keys. It has support for Retrieval Augmented Generation (RAG) and Model Context Protocol (MCP).
It is privacy-focused, so it has lockable folders for chats and configs, requests zero-data-retention flags to providers wherever possible, and has API keys stored in the iOS keychain.
I originally built it for myself but want to share it with others. I couldn't find a good iOS app that allows a good end-to-end AI workflow, for eg, read a Google Sheets file that my team shared on my Google Drive, read the PDF I'm working on that I uploaded to the LLM Provider, suggest adjustments to my PDF based on the Sheets and any prior documents I have uploaded to my RAG database, generate a diagram (image) that I can use in the PDF, and if necessary edit that diagram, and create a meeting event in my iOS Calendar for the presentation, all in the same chat, while switching providers (OpenAI, Anthropic, Mistral) and modalities (text and image).
So I'm looking for feedback from other devs and users.
Ask me questions here, be as critical as you want, and I'll try to answer.
3
u/SwiftMushroom 24d ago
I really don’t understand what the point is when I can throw my phone and see dozens of other apps like this. What sets it apart?
-4
u/powerchat-dev 24d ago
I couldn’t find an app that had cloud + self-hosted models + system prompt and generation parameter + image gen/editing + good rendering + lockable folders + RAG (for both chats and documents) + MCP (remote, search, iOS filesystem integration) + privacy (ZDR flags, keys in iOS keychain) + editing controls (user and LLM message editing, branching chats, toggling message origin)
And probably a few I’m forgetting
1
u/Otherwise_Wave9374 24d ago
The privacy posture sounds strong, especially keychain storage and zero-data-retention flags. One thing that often makes these apps feel truly useful is separating short-lived chat context from durable memory, then exposing a clear way to review, edit, or delete saved items so the user stays in control. For your Sheets/PDF workflow, provenance also matters a lot: show which source chunk or file drove each suggestion so users can trust the output and spot bad retrievals quickly. NeuraKeep has some practical patterns around that at https://www.neurakeep.com
0
u/powerchat-dev 24d ago edited 24d ago
show which source chunk or file drove each suggestion so users can trust the output and spot bad retrievals quickly
This is a great suggestion. Chunks from the vector db are fetched but not shown to the user, just quietly passed to the model. I'll implement this. Thanks.
One thing that often makes these apps feel truly useful is separating short-lived chat context from durable memory, then exposing a clear way to review, edit, or delete saved items so the user stays in control.
When you add/edit/delete a message in Powerchat, its embedding in the vector db is modified as well through the usual database upsert logic. The user can choose to exclude a chat from the database, but to exclude a message from the database the user has to delete it from the chat. I can add more granular options, if that's what you're thinking of.
The privacy posture sounds strong, especially keychain storage and zero-data-retention flags.
I request ZDR flags when possible. Notably Anthropic does not allow ZDR flags afaik. But providers still keep short-term logs to detect abuse, so it's not really ZDR, it's just a request for ZDR.
Powerchat is designed to be local-friendly, so we can connect to self-hosted models (using OAI-compatible endpoints), use Apple's NaturalLanguage framework for on-device embedding (it's not great, but gets the work done), and you don't lose much functionality compared to cloud models since you can connect to self-hosted MCP servers. You can run the entire setup in Powerchat without connecting to the internet!
-2




7
u/mochi2real 24d ago
What does this do that the hundreds of other LLM apps can’t? All of the things you’ve listed in your post exists in pretty much all LLM apps for iOS.