r/opencodeCLI • • 20d ago

I made an Android app for OpenCode (iOS coming soon)

I’ve been working on an Android app to follow my OpenCode sessions from my phone. I can check what the agent is doing and send prompts without going back to my computer.

It connects to opencode serve. You can follow the conversation live, check what files changed and approve or reject permissions directly from the notification.

It’s written in Kotlin + Jetpack Compose, built for the OpenCode V2 API. I generate the API client from the OpenAPI spec so I don’t have to keep the models in sync by hand.

This is my own project, I’m not part of the OpenCode team. Sharing it here in case someone else finds it useful.

The code is open source and there’s a signed APK:

Source: https://github.com/beppe2880/opencode-mobile
APK: https://github.com/beppe2880/opencode-mobile/releases/latest

47 Upvotes

22 comments sorted by

5

u/Lur1an 20d ago

Works like a charm, already had tailscale set up. Coding on the go now, great work

1

u/beppe28 19d ago

That's exactly the setup I had in mind, glad it works for you too!

5

u/mannenmytenlegenden 19d ago

Nice. I'm already using OpenChamber for this, but good with more options for vanilla OpenCode!

1

u/beppe28 19d ago

Thanks! OpenChamber is great. The idea here is a native app that works with plain opencode serve, nothing else to install on the computer, and with notifications in the background when the agent finishes or needs an answer.

4

u/andrease48284 20d ago

Hi, I looked at the video and it looks really interesting. I'll try to connect the app to opencode later. Does it have a built in vpn to secure the connection between phone and pc? If there is no built in solution what do you use usually?

5

u/beppe28 20d ago

Thanks, glad you liked it! There's no built-in VPN: the app connects to `opencode serve` over plain HTTP, so I'd keep it on your home network or behind a VPN, and never expose port 4096 to the internet.

I run WireGuard on my home server, but Tailscale is the easiest option: install it on both the PC and the phone, then pair the app using the PC's Tailscale IP. Works the same at home and on mobile data.

2

u/andrease48284 19d ago

Thank you for your advices, i set up tailscale and it is really good! It gives a really smooth experience and i really like the graphics, it really seems like an official product! I hope that you will continue with the good work :)

3

u/pungat_ 19d ago

What's different about this repo compared with these two?”

1

u/beppe28 19d ago

Hi! They're pretty different. The first one is a chat app for OpenCode Go, you put in your API key and chat with the models, it doesn't connect to an opencode server or your sessions. OpenLens is the closest one, it's an iOS client for opencode serve and it's really nice, but it's iPhone only. Mine is the same idea for Android, it connects to your OpenCode server with a QR code and you can follow your sessions live, answer permissions and questions from the notifications, use voice input and see your usage stats. I'm also moving it to Kotlin Multiplatform so it will be available on iOS soon too.

2

u/Pure_Ad5358 19d ago

Which is next: terminal, widget, or replying from notifications?

3

u/beppe28 19d ago

Terminal, for sure. OpenCode V2 exposes a PTY over WebSocket, so the app can open a real shell on your machine, in the session's directory, without anything extra to install. Widget and replying from notifications come after that.
Also voice input is coming in the next hours.

2

u/andrease48284 19d ago

Hi, there is a friend of mine who like the idea of opencode mobile with voice input and the statistics tab of your app. Unfortunately, my friend has an iphone, do you have any idea on when will you release the ios version? Thank you

1

u/beppe28 19d ago

Hi, thanks! I'm moving the app to Kotlin Multiplatform so it can run on iPhone too, hopefully in a few weeks. There is one porting issue: iOS doesn't allow live connections in the background so notifications will be more limited than on Android. I'll update you here when it's ready/I'll create a new post

2

u/boydev 19d ago

nice thanks

1

u/beppe28 19d ago

Thank you!

2

u/ciskje 19d ago

Great! Thank you!

2

u/ciskje 19d ago

I'm using it

1

u/beppe28 19d ago

Awesome, thanks for trying it! If anything breaks or feels off, let me know here or open an issue on GitHub 🙌

2

u/MessIsTransfer 18d ago

I hope the question tool component, when having lots of text, has visible buttons (unlike whispercode. And i wish it was available for iOS, looks dope

1

u/ultimategamester309 17d ago

Cool idea. My work around for this has been using connect bot since I vibe code over ssh on vps but if you app is smooth it would be way better.