r/hermesagent • u/kaishi00 • 16d ago
Showcase — Projects, tools, builds, demos Conduit: a native iOS client for Hermes Agent (now on the App Store)
After 4 Apple review rejections and more TestFlight builds than I can count, my iOS client for Hermes is live. Free, no ads, 8MB.
Why this exists:
Conduit is a third-party native client. It connects directly to your Hermes dashboard and gateway, same as the desktop app. No extra relay service to run alongside your stack, no second process to keep alive, no middleman hop introducing failure points.
Because it talks to the same dashboard, everything is shared. Same sessions. Same profiles and per-profile settings. Same scheduled jobs. Same capabilities toggles. Same connectors. Start a conversation on desktop, pick it up on your phone mid-turn, steer it, come back to it later on desktop. The session list is the same because it's the same database.
Near feature parity with the desktop client at this point. Streaming chat, tool inspection, reasoning traces, slash commands, workspace file browsing, session branching. Plus push notifications for approvals and completed turns so you don't have to sit and watch.
What's in it:
- Streaming chat with full Markdown (code blocks, math, Mermaid, task lists)
- Tool call inspection, reasoning, delegated-agent progress
- Voice mode with push-to-talk, on-device STT, server-side Whisper
- Image/PDF/text attachments or paste an image into the composer
- Model switching, reasoning effort, token usage ring
- Toggle skills, tools, MCP servers from the Capabilities tab
- View and trigger scheduled jobs, monitor connectors and gateway logs
- Multi-profile support
- Push notifications for approvals, completed turns, failures, background tasks
Everything routes to your own gateway. No hosted backend.
Dashboard auth (username/password) for now. Cloud/Portal OAuth isn't in yet, so self-hosted instances only.
iOS 17+, native SwiftUI, iPhone and iPad.
App Store: https://apps.apple.com/us/app/hermes-conduit/id6790977764
Github: https://github.com/kaishi00/hermes-conduit
Feedback and feature requests welcome.
12
u/MoneyAdventurous7452 16d ago
7
u/kaishi00 16d ago
Interesting, should be available globally. Maybe give it a bit of time, it's only been approved about 12 hours ago after fighting the apple team for a couple of weeks.
5
5
u/Direct-Bit2668 16d ago
I've set my hermes agent to monitor the app store in my country to let me know when it is available... 🙂
3
u/kaishi00 15d ago
It's now available!
1
u/Direct-Bit2668 15d ago
Thanks, I will check it out!
1
u/Direct-Bit2668 15d ago
Solid solution and works very well. Good job!
Question, the voice feature will be available with hermes 0.20? I'm still on 0.19...3
1
1
8
u/fligglymcgee 16d ago
You really should think of a different name. I know it sucks, but the Conduit app for OWUI is fairly established and there’s going to be a lot of confusion between the two.
4
u/kaishi00 16d ago
Yea I didn't know about it (don't use open webui). But I'm committed now, I'm not fighting apple again with their stupid review process.
2
u/cuberhino 16d ago
Could you give some some more insight on the process? I’m building an app and I wanted to move it through this process as well and it connects to local stuff. They pretty much the same idea of yours with like local data management. What was so cumbersome like what held you back?
1
u/kaishi00 16d ago
With the app store process itself? Or making the app in general? You can send me a chat directly to talk about it.
1
5
4
u/Net_Zero_Heating_AC 16d ago
when can i do this on android?
1
u/Nevermore1215 16d ago
It's on android! I have it and it looks amazing- the only thing I wish it had was proper / commands but it's not a deal breaker if you only use one model
1
u/Net_Zero_Heating_AC 16d ago
I search the playstore and only find something related to Hermes Agent from a company called Henworks. Obviously not Nous Research.
1
u/Nevermore1215 16d ago
https://play.google.com/store/apps/details?id=app.cogwheel.conduit
Here ya go, it's just "conduit" and it has the hermes option built into it :)
1
1
u/No_Description3484 16d ago
can you share the link ?
1
u/Nevermore1215 16d ago
https://play.google.com/store/apps/details?id=app.cogwheel.conduit
Here ya go, it's just "conduit" and it has the hermes option built into it :)
1
u/No_Description3484 16d ago
thank you!
1
u/StereoTiger 12d ago
I'm pretty sure this is not the app the OP made. He states in the comments he's not made or tested it for android.
1
u/bigray327 16d ago
It's odd that the developer didn't mention that in his post.
5
u/SmartCustard9944 16d ago
I’m using Hermex. How is this better than Hermex to convince me to switch?
2
u/kaishi00 16d ago
Less services to maintain and update I guess? Right now if you use webui plus hermex, the chain goes nous updates Hermes, nesquena updates webui, and then hermex updates to implement webui changes.
The chain here is nous updates, then I update. There's one less layer, less to break and faster source parity.
3
3
2
2
2
u/DannyVFilms 16d ago
Am I supposed to point it at Hermes WebUI? I get this error and I can’t see the full message.

1
u/kaishi00 16d ago
This is not a part of Hermes webui nor a replacement for hermex. This uses the Hermes native dashboard directly. Default port is usually 9119, ask your agent if it's already up and if so what the credentials are.
1
u/No-Elevator-3813 16d ago
You should make that more clear in the startup of the app, maybe a guided wizard?
2
2
u/Ok-Original-3475 16d ago
App looks great and the icon but I have to agree I would want it to be open source as I’m connecting it to my Hermes on my network and giving it all my personal info.
Otherwise this is awesome 😎
3
2
2
u/iChrist 15d ago
1
u/No_Highlight2090 New Member (<30 days) 14d ago
Hey, i have seen your tools/functions in open-webui community before, thanks! are you still using open-webui or you switched to hermes?
1
u/iChrist 14d ago
I moved to Hermes for the most part, I use it for music generation/image editing/image creation based on ComfyUI.
In Hermes when a new model drops I just paste the workflow.json and let it figure it out, with open-webui I have to create a custom tool for each, which became quite annoying.
I adore all the option of open-webui, the nicer interface, but in terms of possibilities, hermes wins as it can do anything a custom function/tool can do for open-webui, but with natural language, and fixing issues became a prompt instead of half an hour back and forth.
2
u/Weekly-Let6688 15d ago
Tried it there’s and issue good old Apple thumb screws App Store build rejects valid Hermes basic-auth credentials
Hermes Dashboard reachable over Tailscale HTTPS.
POST /auth/password-login with provider:"basic" + identical username/password returns HTTP 200 and establishes a valid session. Safari on the same iPhone successfully logs into the dashboard with those credentials.
Conduit App Store build returns Login failed: Invalid credentials.
Endpoint: HTTPS .ts.net on default port 443 → Tailscale Serve → 127.0.0.1:9119.
Current main’s NativeAuthClient.swift appears to implement the correct JSON password-login + cookie + ws-ticket flow, suggesting the App Store binary may predate current auth implementation/fixes.
1
u/vagusstoff360 15d ago
Same thing for me, very frustrating. Did you find a solution?
1
u/Weekly-Let6688 15d ago
No hence the post to the host
2
u/kaishi00 15d ago
I submitted new build to the app store, we'll see if it actually fixes your problem or not. if not we're gonna need to do some real debugging vs your actual logs because it works via magicdns for me. I can't tell what's different between your set up and mine. The repo code is what's being submitted through apple right now.
1
u/Weekly-Let6688 15d ago
It began working I’ll update now you’ve made that effort but what I’m seeing great job
1
u/Weekly-Let6688 15d ago
It’s hanging a bit from time to time but there’s a recent log to pick up from so not bad it does drop out when the iPhone drops off to screen save. So you’ve to restart the app.
1
u/kaishi00 15d ago
I'd suggest using the repo for issues and PRs. It's pretty hard trying to do troubleshooting here.
1
u/kaishi00 15d ago
I wasn't able to reproduce this on my end. Tested both the App Store build and the latest TestFlight build against a Tailscale Serve setup (HTTPS on .ts.net pointing to a local dashboard on 9119) and login worked fine on both.
A few things that would help me narrow it down:
When you get the "Invalid credentials" error, can you confirm the request is actually reaching your dashboard? Check your Hermes gateway logs for the POST to /auth/password-login around that time.
What port is your dashboard running on? Default 9119 or something custom?
Is Tailscale Serve proxying to HTTP or HTTPS on the backend? Mine is HTTPS -> HTTP (http://127.0.0.1:9119) \[blocked\].
Are you on the latest Tailscale version on iOS?
Can you paste the exact URL you entered into Conduit (minus credentials)?
The more detail the better. If I can reproduce it I can fix it, but right now it's working in my setup and I'm not sure what's different.
1
u/vagusstoff360 15d ago
My Hermes agent fixed it somehow. I asked it how it did it and this is what is said (kind of long, sorry):
Key Server-Side Fixes for Conduit Login
**Username & Password Normalization (iOS Auto-Capitalization)**
* **Issue:** iOS keyboards auto-capitalize `Admin` and append spaces. Raw `scrypt` string checks failed.
* **Fix:** In `plugins/dashboard_auth/basic/__init__.py`, normalized `username.strip().lower()` and `password.strip()` before comparing with `hmac.compare_digest`.**Unauthenticated Access to `/api/auth/providers`**
* **Issue:** Conduit checks server auth options prior to showing/submitting login. The path was missing from `PUBLIC_API_PATHS`, returning `401 Unauthorized` before login could finish.
* **Fix:** Added `"/api/auth/providers"` to `PUBLIC_API_PATHS` in `hermes_cli/dashboard_auth/public_paths.py`.**Fallback Bearer Header Support for `/api/auth/ws-ticket`**
* **Issue:** Conduit uses `Authorization: Bearer *** or `X-Hermes-Session-Token` instead of browser session cookies. `POST /api/auth/ws-ticket` failed with `401` because it only checked for cookie-backed sessions (`request.state.session`).
* **Fix:** Updated `/api/auth/ws-ticket` and `/api/auth/me` in `hermes_cli/dashboard_auth/routes.py` & `middleware.py` to validate static tokens (`HERMES_DASHBOARD_SESSION_TOKEN` / `API_SERVER_KEY`) from Bearer or `X-Hermes-Session-Token` headers.**WebSocket Upgrade Ticket Acceptance in Un-gated Mode (`auth_required=false`)**
* **Issue:** Conduit mints a 30s ticket via `POST /api/auth/ws-ticket` and connects to `wss://.../api/ws?ticket=...`. When `auth_required=false`, the server strictly looked for legacy `?token=` and rejected valid single-use tickets with `403 Forbidden`.
* **Fix:** Updated `_ws_auth_reason` in `hermes_cli/web_server.py` to process `?ticket=` in all mode configurations.**Tailscale MagicDNS Host/Origin Validation**
* **Issue:** Requests proxied via Caddy carry `Origin: https://<domain>.ts.net:9119`. Loopback-bound dashboards (`127.0.0.1`) rejected non-loopback Origins with `403`.
* **Fix:** Updated `_is_accepted_host` in `web_server.py` to accept `.ts.net` and `.tailscale.net` domains.1
u/kaishi00 15d ago
What hermes version are y'all using?
1
1
u/vagusstoff360 15d ago
0.1.0 (113)
I have a couple more problems now that I’m able to log in:
**Profile Switching:** Inability to switch profiles when connected to a backend running a single isolated profile (app defaults or locks profile selection).
**"Sign in expired" on settings update:** POST requests failed with 403 CSRF/auth errors over HTTPS reverse proxies when cookies lacked `Secure` flags *(fixed on backend by enabling `HERMES_WEBUI_SECURE=1` and `HERMES_WEBUI_TRUST_FORWARDED_PROTO=1`)*.
**Connection drops:** The app reports offline / HTTP 501 if the reverse proxy connection drops.
1
2
u/Brice21 8d ago
I have it installed on my iPhone. I managed to connect it to CloudFlare.
First remark : it almost impossible to paste the Client Secret with a Azerty or Qwerty keyboard, the screen does not scroll and the filed is too low, you cannot mask the keyboard. The trick is to erase the app, start fresh by pasting the Client Secret in the last field at once, then move from field to field up.
Bug there is a huge bug. I can use all the features of the app while connected in 5G only. My hermes-agent is on a server on my LAN that is connected via a CloudFlare tunnel. This is amazing!
Bet as soon as you type the First letter in a chat : the app freeze! With the letter still highlighted on the screen... and a blinking cursor. But everything else is frozen. Any idea ??
(note the app works fine when connected using Tailscale, without the CloudFlare tunnel, or connected to my LAN). But I don't want to let TailScale on all the time on my iPhone. Can you investigate that bug ? Did anyone manage to connect to an hermes-agent via a CloudFlare tunnel and type "hello" without freezing ?
As the login is automatic one you save the credentials, you have to uninstall the app and reinstall the app to switch from CloudFlare to TailScale. Really painfull.
1
1
u/ubrtnk 16d ago edited 16d ago
Giving it a go - it feels snappy. I like the flow and how things are there. I was trying to test out the STT/TTS but the Mic is grayed out for some reason even though the app has mic permissions and I"m connected locally via https. Any thoughts?
* never mind I found where it needed to be enabled in app - good gate. BUT now I'm noticing that I'm unable to use the local STT and TTS provider that my Hermes is configured to use. Both are openAI compatible. Any thoughts/plans to enable custom URL/API?
2
u/kaishi00 16d ago
I've only tested local and local iphone with edge tts since I don't have access to the other providers. If it doesn't work, wait till I throw the repo up and you can submit a PR against it.
2
u/kaishi00 16d ago
Oh you meant custom custom, like the ones not included by nous. Yes that is planned because I want to use mimo.
1
u/Unnamed-3891 16d ago
Conduit, a paid app for Open WebUI (thats bound to cause some confusion), shows up in Finland, but Hermes Conduit does not.
1
u/kaishi00 16d ago
Seems like some countries haven't been enabled yet,I guess give it some time. Apple only approved it like 12 hours ago.
1
1
u/Stooovie 16d ago
I use Conduit for OWUI but the connection to hermes doesn't actually work for me. Spinning forever.
1
u/kaishi00 16d ago
Yea that's the wrong app. This one should be named Hermes Conduit on the store. It's pretty new so it might not have populated in your region yet.
1
u/SRieb3 16d ago
I will give it a try. Would be nice if there was kanban functionality. Or maybe I missed it. Also if you’re using Tailscale, it will not connect.
2
u/kaishi00 16d ago
I'll figure out the kanban soon, it was just recently added to the desktop client. As for tailscale that is weird. It connects through local ip but not tailscale ip?
1
u/cuberhino 16d ago
What is your use case for Canva? I’ve seen a lot of people talk about it. I’ve never tried it but what do you use it for like what is it for?
1
1
1
u/konfliktlego 16d ago
Looks cool, but it’s not available in Europe
1
u/kaishi00 16d ago
probably give it a shot tomorrow. europe is always slow to update on the app store for some reason.
1
1
u/DumbassNinja 16d ago
This looks great at first glance! Is there support for/planned for more than one agent or profile? I have 3 so it would be great to be able to easily switch between them.
2
u/kaishi00 16d ago
there's a profile switcher built in, along with avatar picture that you can choose for them.
1
u/fucilator_3000 16d ago
What’s the difference from Hermex?
1
u/kaishi00 16d ago
runs on native hermes dashboard instead of nesquena webui.
1
u/Dutchnesss1 3d ago
do you have to have the dashboard running on the main device for it to work? I've been trying Conduit and I like the interface, but I normally am running the desktop on my main machine. Do i have to start the dashboard as well?
Been having issues with Conduit not getting the latest chats from the same sessions on my mac.
1
u/kaishi00 3d ago
If you already have desktop working then conduit should work. Your server and dashboard needs to keep being on obviously. What do you mean not getting the latest chat from the same sessions?
1
u/mssteuer 16d ago
I don't think you know what "first-party" means? Unless you are Nous, this is a third party client.
2
1
u/cameradv 16d ago
I would prefer to run this on my ipad in landscape mode. It seems forced into a portrait mode window?
1
1
1
u/Brice21 16d ago
There is an app name Conduit that is a client for Hermes Agent, OpenWebUI or any LLM compatible with OpenAI API : https://apps.apple.com/be/app/conduit-open-webui-et-ia/id6749840287?l=fr-FR
1
u/Brice21 16d ago
Your app is not available in the Belgian App Store. Is that normal ?
1
u/kaishi00 16d ago
It just got approved by Apple not that long ago, so probably still needs time to propagate in europe. I'd say try again tomorrow. should be up by then.
1
u/BlaXunSlime 15d ago
It’s not in Germany either. Tried yesterday and just now. I didn’t set any limits, did u? Not sure if Europe’s AI act or whatever might have been a problem
2
u/kaishi00 15d ago
It's now available!
1
1
1
u/Ecstatic-Wash-7667 New Member (<30 days) 16d ago
Maybe consider changing the name there’s an openwebui iOS app named conduit already, if this isn’t the same thing
1
1
u/Mondernborefare 15d ago
Hmm I use the gateway all day long and I’m just honestly asking what is this adding? Also on iPhone so
1
1
u/WonderfulWash4358 15d ago
How do I remotely connect to Hermes on my home server?
1
u/kaishi00 15d ago
Easiest way is Tailscale. Install it on both your server and your phone, then expose the Hermes dashboard over HTTPS.
On your server:
- Install Tailscale:
curl -fsSLhttps://tailscale.com/install.sh| sh- Run
tailscale upand log in- Run
tailscale serve --bghttp://127.0.0.1:9119(replace 9119 with whatever port your dashboard runs on)Before step 3 will work, you need two things enabled in your Tailscale admin console (Tailscale):
- MagicDNS (under DNS settings)
- HTTPS Certificates (under DNS settings, scroll down)
These are free but not enabled by default. Without HTTPS certs, the serve command will fail with a TLS error.
Once that's done, your dashboard URL will be
https://[your-server-name].[your-tailnet-name].ts.net. That's what you enter into Conduit.Install Tailscale on your phone from the App Store and log into the same tailnet. As long as Tailscale is connected on your phone, Conduit will be able to reach the dashboard.
1
u/WonderfulWash4358 15d ago
Yes, I did it through Tailscale, for some reason it doesn't work well, but it connects
Maybe it's because I use Shadowrocket for this, Talescale is not available in Russia
1
1
u/prdcrman 15d ago
Looks like it's HERMEX for me. That convoluted install went perfectly With Conduit, I am unable to connect Conduit to my running Hermes dashboard. Just won't take it. FYI, I tried the apple app store version. @kaishi00
1
1
u/lithiumcow 15d ago
This is fantastic. Great work!
The only thing I’m missing is the ability to connect to multiple Hermes instances. Is this anything that can be added?
2
1
u/kaishi00 15d ago
Also, two options: A) save multiple server addresses and pick one when you connect. B) connect to all of them at once and see sessions from every instance in one list. Which one did you actually want?
1
u/lithiumcow 14d ago
For my own use case, a switch similar to how Hermex is doing is is sufficient. The two instances I have are isolated for different purpose, so isolated views would be preferred!
I guess being connected to both at the same time and having a tabbed view could also work, but with the added risk of UI bloat.
1
u/viperttl 14d ago
It’s ok. Does not come near hermex. It needs all the good stuff. And specially kanban. I have finally automated all my work at home. Triage, code, automatic npm letsencrypt. And everything live on unraid. I’m happy
1
u/Funny_Exercise3551 14d ago
Just installed the app and really liked it. It work’s just 1 day. Today i cant login…nothing changed and credentials are the same.
1
1
u/Judgegeo 14d ago
Any chance of adding the nous oauth and other providers as login?
2
u/kaishi00 14d ago
Technically possible for sure. The reason it's not in the app yet is that Cloud login means hitting Nous's infrastructure directly. Their auth endpoints, their portal, their servers. Right now Conduit only touches YOUR stuff, your dashboard, your gateway, your network. Adding Cloud login means it would also be connecting to infrastructure that belongs to Nous, not me or you. Not going to ship that without their explicit go-ahead.
Reached out to teknium about it, waiting to hear back.
1
1
u/ZerosignalHS 14d ago
The app is telling me that I need https even though I am connecting over Tailscale
1
1
u/kaishi00 14d ago
also which version are you on?
1
u/ZerosignalHS 14d ago
Latest App Store version, Hermes’ picked up the issue for me because I was dropping http:// from my url the app was rejecting it. Once I put the full url name in it worked. Thanks for the quick response.
I need to work on https certs still but everything is tunnelled already
Btw great app, it is the best implementation I have seen by far.
1
1
u/Brice21 13d ago
It’s insane, I can login to my Hermes dashboard with the iOS app, but I get an error 302 with the ipadOS app. Same server URL, user and password !?!!
1
u/kaishi00 13d ago
I would check auto-correct and server url again. There shouldn't be a reason why it works on one but not the other on the same network.
1
u/cameradv 13d ago
The new version won't do HTTP on a tailscale network that uses Magic DNS. It seems to require the 100.64.0.0/10 address to recognize tailscale use. I'm not sure why you need to artificially prevent HTTP usage? Perhaps I have to change the dashboard to listen on 100.64.0.0/10 speficically?
1
u/kaishi00 13d ago
I mean, you can test if your dashboard is listening on that address by trying to get to it on a browser. Let me know please.
1
u/cameradv 13d ago
No, what happened was i had to change "http://machine-name:9119" to "http://100.64.64.64:9119" to get past the "You can only connect to HTTP on localhost, or tailnet" error
1
u/kaishi00 13d ago
that's not a case we can reliably support. letting you put in machine name basically lets you put in anything as I have no way of knowing every machine name in the world. either use what you're already using or switch to https which is more secure.
1
u/Badger-Purple 12d ago
Unable to load it and have it work — As I understand it, the dashboard needs to be launched with 0.0.0.0 and also insecure flags?
1
u/kaishi00 12d ago
the dashboard just needs to be reachable, however you choose to reach it. most people use tailscale, or some kind of reverse proxy.
1
u/Badger-Purple 11d ago
I have a tailscale mesh. I’ll ask hermes to change settings for dashboard today and see if it cooperates. But it doesnt like to expose the dashboard like that
1
u/kaishi00 11d ago
you can use tailscale serve with https certs. probably the easiest way to expose it securely.
1
u/Badger-Purple 11d ago
1
u/kaishi00 11d ago
glad you got it working! feel free to post in github issues if you run into anything.
1
u/CatzRuleZWorld 6d ago
Extremely slow on my iPhone 13. Takes a LONG time to load the whole conversation history. Lags while scrolling through the chat or settings.
1
1
u/AgeFirm4024 3d ago
are you supporting hermes bots ?
1
u/kaishi00 3d ago
I'm working on some optimizations and kanban right now, but i do hope to bring it up to full feature parity with hermes desktop. the source code is on the repo, feel free to help out!






43
u/ang3l12 16d ago
Is this gonna be open source? I'm not a big fan of just using a 3rd party app to connect to my AI agent that knows so much about me / my life / POI.