DEV Community

tony chen
tony chen

Posted on

RunWhale Turns a Phone Into an Agent Coding Workspace

Start a project, let the Agent edit it, and run the result — from the device already in your hand
Press enter or click to view image in full size

Not everyone who wants to try Agent coding has a computer set up for development. Some people share one. Some only have a phone. And even for developers, an idea does not always arrive while they are sitting at a desk.

RunWhale starts from that reality. It brings a coding Agent, project files, Git, development tools, and Preview into one mobile app. Start from a Web or Expo template, describe what you want, inspect the changes, and run the result.

The goal is simple: make Agent coding available to more people, wherever they are.

Choose a Model Before the First Prompt
Before the first run, open Settings → Models, pick a provider, and then pick a model. The current build includes DeepSeek, OpenAI, Anthropic, and Google.

RunWhale uses your own provider credentials. Paste the provider’s API key into the field and tap Save securely. The key stays in iOS Keychain or Android Keystore and is not exposed to projects or Preview. Your choice becomes the default, but you can switch provider and model from the Agent composer. Model inference needs an internet connection, and the prompt and relevant project context go to the provider you selected. The RunWhale Privacy Policy explains this boundary in more detail.

From One Request to a Game You Can Play
The demo begins with a project named Baby game. We select RunWhale’s built-in Expo template, leave the optional Git repository field empty, and tap Create and open Agent.

Press enter or click to view image in full size
RunWhale’s new-project screen with Baby game entered, Expo selected, and the optional Git repository field empty.
Start with an Expo project created inside RunWhale. Frame at 00:06.
Then comes the whole prompt:

Make a game for baby

The Agent starts by inspecting the project. It plans a simple game with large touch targets, gentle feedback, and no failure state, then develops the idea into a tap-and-discover experience with six animal buttons and a “find this animal” prompt.

Press enter or click to view image in full size
RunWhale Agent session showing the prompt Make a game for baby and a plan for large touch targets, gentle feedback, and no failure state.
One short request gives the Agent a starting point. Frame at 00:25.
The session is in Review mode. Before changing index.tsx, the Agent asks for permission to write the file. We tap Allow once, and the activity list records the file write alongside the Agent’s progress.

Press enter or click to view image in full size
RunWhale’s file-write permission dialog with Reject and Allow once buttons above the pending index.tsx edit.
Approve the file change from the same Agent session. Frame at 01:34.
Next, the Agent runs TypeScript diagnostics and a Git diff. Its summary reports that dependencies have not yet been installed in the fresh workspace, leaving the language service with unresolved imports and related type errors. It then launches Native Preview to check the app by running it.

Press enter or click to view image in full size
TypeScript diagnostics and Git diff activity, followed by the Agent’s unresolved-dependency summary before Native Preview.
The session shows the checks and their dependency limitation before moving to Preview. Frame at 01:54.
The result is Animal Parade, a colorful game with six large cards: Dog, Cat, Cow, Chick, Frog, and Lion. Native Preview opens with “Can you find the Dog?” above the grid.

Press enter or click to view image in full size
Animal Parade in RunWhale Native Preview, with Can you find the Dog? above six colorful cards: Dog, Cat, Cow, Chick, Frog, and Lion.
The idea has become a game we can interact with in Native Preview. Frame at 02:01.
We tap the animal cards. The game responds with messages such as “Yay!”, “Great job!”, and “You found it!”, and moves on to another animal prompt. The recording shows the interface responding to those interactions in the same project the Agent just edited.

Write on Medium
That small loop is the point: describe an idea, approve the change, follow the checks, and use the result yourself. The project and Agent session remain there for the next idea or adjustment.

Press enter or click to view image in full size
Animal Parade displaying Great job! with the Lion icon after an interaction in Native Preview.
Animal Parade responds to an interaction. Frame at 02:07.
Watch the full demo, about 2 minutes 12 seconds. This silent recording follows Baby game from project creation and the first prompt through Agent activity to Animal Parade running in Native Preview.

Your Phone Is Not a Remote Control
RunWhale does not need a laptop sitting somewhere with the lid open, and it is not a remote desktop for a cloud editor. Project files, Agent sessions, Node.js and TypeScript tools, Git, Metro, and Preview run on the device.

Model inference still happens through the provider you configure. Network Git operations and uncached dependency downloads also need the network. RunWhale is phone-local, not offline.

Built on DeepSeek Harness — and Open Source
RunWhale’s Agent runtime is built on DeepSeek Harness, the open-source, MIT-licensed agent harness developed by DeepSeek AI. RunWhale gives it a mobile-specific profile, tools, and permission boundaries. Harness is the Agent foundation, not a restriction on model choice; the provider remains yours to choose.

RunWhale itself is open source. Its original software code is licensed under the Apache License 2.0, so the mobile runtime and DeepSeek Harness integration can be inspected and contributed to. Third-party components and RunWhale brand assets retain their own terms.

Phones Have Limits. RunWhale Does Too.
RunWhale currently focuses on compatible JavaScript and TypeScript Web or React Native projects inside a fixed Expo SDK 57 environment. It does not invoke Xcode, Gradle, or EAS for user projects, produce IPA or APK builds, provide a general-purpose shell, or support arbitrary native dependencies. On iOS, Agent and Metro work cannot continue indefinitely while the app is in the background. Not every repository will fit.

Built With Codex
I kept the work in TODO.md. After working through a decision with the model, I wrote down the next concrete steps; Sol took the next unblocked item, made the change, ran the checks, and updated the list. I often had several tasks moving in parallel and used /side to open a separate conversation for temporary questions. Small jobs ran on GPT-5.6 Sol at Medium; larger jobs that could be split up went to Ultra. I like Codex.

While building RunWhale, I received maintainer support through Codex for Open Source. I am grateful to OpenAI for that support. I am also grateful to @thsottiaux for helping me with Codex usage resets during development.

RunWhale is built to keep an idea moving while it is still fresh.

Try It When the Idea Arrives
RunWhale is currently in prerelease. An iOS 1.0.0 build has been uploaded to App Store Connect, but no public TestFlight, App Store, or Android download is verified yet. Learn more at runwhale.dev. Agent features require an internet connection and an API key for a provider enabled in the release. Development-build testing on a physical Android arm64 phone covered Web and Native Preview; physical-iPhone and release-candidate validation are still pending.

If you want to take an idea through your own prompt-to-Preview loop, visit runwhale.dev and explore RunWhale on GitHub.

Open RunWhale. Say what you want to change. See how far the idea can go.

Top comments (0)