Skip to content

Kilo canvas#3567

Closed
intuitiv wants to merge 42 commits intoKilo-Org:mainfrom
intuitiv:kilo-canvas
Closed

Kilo canvas#3567
intuitiv wants to merge 42 commits intoKilo-Org:mainfrom
intuitiv:kilo-canvas

Conversation

@intuitiv
Copy link
Copy Markdown

@intuitiv intuitiv commented Nov 7, 2025

Context

This PR introduces the "Mobile Bridge," a new feature that untethers development from the desk by allowing users to continue their Kilo Code sessions from a mobile device.

This was born from a personal need to achieve true continuity in my development workflow. I often found myself needing to step away from my computer mid-task, shattering my focus. The goal of the Mobile Bridge is to enable a seamless, continuous "vibe coding" session, turning a fragmented process into an uninterrupted conversation with Kilo, no matter where I am.

Implementation

I chose to build this feature directly into the Kilo Code extension to create a robust, first-class experience, avoiding fragile workarounds like a companion extension that would rely on file polling.

The implementation consists of three core parts:

  1. The Bridge Server (src/bridge/MobileBridge.ts): A new module is introduced that starts a per-workspace HTTP server. It's activated via a new status bar item and exposes two primary endpoints: POST /new-task and POST /send-followup. The server interacts with Kilo by calling its internal functions directly, ensuring a stable and performant connection.

  2. UI Integration: A new, minimal UI element is added to the VS Code status bar. This allows the user to easily start and stop the Mobile Bridge server for the active workspace and configure the port.

  3. The "Kilo Canvas" Mobile App: To make this feature immediately useful, this PR also includes "Kilo Canvas," a mobile client sub-project located in the monorepo (apps/kilo-remote). Built with Expo (React Native), it serves as both a reference implementation for the API and a fully functional mobile app that the community can use out-of-the-box.

The main tradeoff of this approach is that the bridge has a direct dependency on Kilo's internal controllers, but I believe this is the correct choice for such a deeply integrated feature, ensuring long-term stability over external methods.

Screenshots

Mobile bridge on vscode workspace
image

Kilo canvas sample screenshot from my mobile
iPhone 16 Pro Max screenshot

apps/kilo-remote/README.md has all the necessary details to setup for dev and deploy of mobile app.

How to Test

  1. Run the extension from this branch.

  2. From the VS Code status bar, click the new button to "Start Mobile Bridge".

  3. Test creating a new task:

    • Open your terminal and run the following curl command:
    curl -X POST -H "Content-Type: application/json" \
      -d '{"message": "Hello Kilo, this is a test from the new bridge."}' \
      http://localhost:8080/new-task
    • Expected Result: A new task should appear in the Kilo UI, and the command should return a JSON response containing the taskId.
  4. Test sending a follow-up message:

    • Take the taskId from the previous response and use it in the next command:
    curl -X POST -H "Content-Type: application/json" \
      -d '{"taskId": "YOUR_TASK_ID_HERE", "message": "This is a follow-up message."}' \
      http://localhost:8080/send-followup
    • Expected Result: The follow-up message should appear in the active Kilo task, and a JSON response with Kilo's reply will be returned.

Get in Touch

I'm active on the Kilo Code Discord. My handle is sainath_aet. I'm very excited about this feature's potential and am happy to discuss it further and make any changes needed

…modes are also working. Button displayed on chat menu.
…uff.

Added dev build script to use tailscale ips.
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Nov 7, 2025

⚠️ No Changeset found

Latest commit: 3a89308

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@strich
Copy link
Copy Markdown

strich commented Nov 18, 2025

Hey there. This is a cool feature! Would be interested in giving it a go soon and possible contributing. What is the status of it? Are you working on any additional features? Any current drawbacks?

@adamhill
Copy link
Copy Markdown

Hey @intuitiv. Can you merge the latest... Github says "Changes can be cleanly merged"

I wonder if it is being truthful :-)

@intuitiv
Copy link
Copy Markdown
Author

Hey there. This is a cool feature! Would be interested in giving it a go soon and possible contributing. What is the status of it? Are you working on any additional features? Any current drawbacks?

Thanks @strich for the kind words! It’s great to hear you're interested.
Status:
The feature is fully functional and I'm using it daily ("dogfooding"). The backend bridge is stable, and the mobile app connects and syncs history correctly.

Open Questions & Next Steps:
I’ve built this based on my own workflow (using Tailscale for the tunnel), but before we merge, I think we need to align on a few architectural decisions to make this accessible to everyone.
I see three main areas we need to finalize:
Networking Standard: Currently, I rely on the user creating a tunnel (Tailscale). We likely need a standardized Auth Token handshake so users can safely expose the bridge using whatever tool they prefer without security risks.
App Distribution: What is the vision here? Should Kilo Org publish an official "Kilo Canvas" app to the App Stores/Expo Go? Or is the intention for developers to clone and build their own private clients?
Theming & Design: Should the mobile UI try to mimic the user's VS Code theme, or stick to a clean, standardized "Kilo" look (System Light/Dark)?

Process:
How does the team usually make these types of product decisions? I’m happy to hop on Discord to discuss the networking and distribution strategy if that's easier than a long GitHub thread!

@intuitiv
Copy link
Copy Markdown
Author

Hey @intuitiv. Can you merge the latest... Github says "Changes can be cleanly merged"

I wonder if it is being truthful :-)

Thanks @adamhill, for the nudge! I plan to do a clean merge with the latest main later this week to ensure everything is up to date and completely conflict-free. I'll drop a comment here once it's pushed!

@strich
Copy link
Copy Markdown

strich commented Dec 11, 2025

I would say I'd like to see a web client instead of an app. The app restricts the surface area of where one can remote in and of course comes with a lot of additional overhead in getting this thing working.

@intuitiv
Copy link
Copy Markdown
Author

I would say I'd like to see a web client instead of an app. The app restricts the surface area of where one can remote in and of course comes with a lot of additional overhead in getting this thing working.

Thats fine. I think web app is already working. I have added scripts to build, launch and develop on web.
As I did on expo, if we do it on web, we get it on ios and android (added scripts for that also.).

Can you give a try, may be we can discuss over discord if you observe any issues or enhancements we can discuss.

jeremylongshore added a commit to jeremylongshore/kilocode that referenced this pull request Feb 15, 2026
@intuitiv intuitiv closed this Feb 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants