Your deviceis the server.

Device Cloud turns a phone, tablet or desktop into a small personal file server — and serves a whole desktop around your files: code and git, databases, documents, AI chat, your old games and the phone's own camera. To the browser on the device, to the local network, and through a zero-account tunnel to anywhere on the internet. Then the phone in your hand becomes the remote.

http://127.0.0.1:8080 On the device

One address per reach. Nothing beyond the first one is on until you turn it on.

Four people this was built for

Each one is the same trick: the machine that has your files and does your work is already in your pocket, and the screen in front of you only has to be a window.

For the software engineer · anywhere

Your code, your repos and your databases — from a browser, with nothing installed

The laptop is at home, or in the hold, or on a desk you are not sitting at. The phone in your pocket is already running the editor, the git implementation, the C# compiler and the database connections, so the borrowed screen in front of you does not have to run any of it. Open the address and you have your desk.

And you sign in to your device, never to GitHub or to the database. Git tokens and database passwords stay in the phone's keychain; the browser only ever names an account. Pull from a private repository or query a production replica on a machine you would not type a password into — and when you walk away there is nothing on it to clean up.

  • C# in the browser: IntelliSense across the whole solution, then Build and Run with Roslyn — no SDK on the machine in front of you
  • A NuGet package manager, with restore on the device and private feeds whose credentials stay in its keychain
  • Clone, stage by hunk, commit, rebase and push — git written from scratch, running on the phone, on files that never leave it
  • SQL Server and PostgreSQL as well as SQLite: the device makes the connection, so any browser gets a query editor, Explain and editable tables without a database client
  • TLS required by default; trusting a server's certificate is a box you tick, not a default you inherit
  • AI Chat with OpenAI, Azure OpenAI, Anthropic or a local model server — run by the device, with your mapped folders as the model's tools and the API key in the keychain
For sales and business on the go · anywhere

The deck, the proposal and the numbers, on whatever screen is in the room

A hotel business centre, a client's meeting room, a tablet borrowed from a colleague. Your documents are on your phone, and the phone serves them into a desktop in the browser — Word, Excel and PowerPoint open, edit and save right there. Nothing is copied onto the machine you borrowed, and nothing is left behind on it.

Then start the slide show and put the laptop down. The deck is on the wall, and your notes, the clock and the next slide are in your hand.

  • Writer, Spreadsheet and Presentation open, edit and save .docx, .xlsx and .pptx — or start a new one
  • Saved back surgically: the parts of the file you did not touch survive byte-identical
  • Notes for free-form pages and ink, a PDF viewer, and search that looks inside files
  • A public https:// address and a QR code for it, with no account anywhere — a borrowed screen is one scan away
  • Anything sent to Device Cloud from the phone's share sheet lands in Inbox, ready for the meeting
  • A presenter's view on your phone: the slide's notes, a clock for the talk and one for the slide, the next slide, and Back and Next — while the deck plays on the room's screen
  • The phone is also a touchpad and keyboard for the desktop on that screen, and on iPhone the whole desktop can go to the TV over AirPlay
For the retro gamer · same network, or anywhere

Your cartridges, on any screen. Your saves go with you.

The games you own are files on your phone. Games turns them into a library of box art, and any browser that reaches the device plays them — the laptop in the hotel, a laptop plugged into the TV, a tablet on the couch — with a controller in your hand and nothing installed.

Every other browser emulator keeps your saves in that browser, gone with the profile. Here the battery saves and save states live on the device, so the game you saved on one screen picks up on the next. No controller with you? The phone is one — a pad drawn like the console you are playing, rumble included.

  • NES, SNES, Game Boy and Game Boy Color, Game Boy Advance, Genesis / Mega Drive, TurboGrafx-16 and Nintendo 64
  • Add a folder from the file manager; the device identifies each ROM from its header and fetches its box art once, for every browser
  • A Bluetooth or USB controller plays the game and drives the library; the keyboard works too
  • Or use the phone as the controller: NES, SNES, Game Boy, Genesis and N64 layouts, multi-touch, with the game's rumble on the phone's motor
  • The emulator cores ship inside the app, so playing needs no internet at all
  • Off until you switch Games on, and bring your own games. The phone controller drives a game on another screen; a phone's own browser still needs a paired controller
For the photographer · same network

The iPhone is on the tripod. The shoot is on a real desktop.

Team photos in a school gym, a club's whole roster, a hall of people who each get ninety seconds. The phone goes on the mount pointed at the riser — which is the exact moment its own screen stops being any use to the person pressing the shutter. Photographer mode makes every other screen the viewfinder: a laptop on the table gets the live preview, the shutter, video, the lens, zoom, the torch and the filters.

Every picture lands in a folder on the same device everyone is already connected to, the moment the shutter is pressed. Then sort the shoot where sorting is easy: tiles and thumbnails, multi-select, move, zip, and an image editor in the browser. No card, no cable, no import.

  • More than one screen can watch and drive it; the controls follow the device, so two people cannot undo each other
  • Ask the device to open its camera from the remote screen, because "go and open the Camera tab" is advice nobody at a tripod can take
  • Photos, a gallery over the phone's library: albums, a zooming full-screen viewer and a slideshow, in any browser — and "Edit" hands a picture to the image editor
  • The photo library is a folder too, one album each, and HEIC comes out as JPEG so it opens in any browser
  • Crop, rotate, draw, add text and export in the browser, saved straight back to the device
  • Off until you turn it on, and it stays off until the system grants the camera too

The same desktop, on the phone and in a browser across the room

One address, one desktop. A browser with room gets windows, a taskbar and a launcher; on a phone the same desktop keeps every window full screen and re-fits it when the device turns. And while a browser has it open, the phone in your hand is its remote.

http://192.168.1.24:8080/
The Device Cloud desktop in a browser: a launcher of apps down the left, a Files window listing a Documents folder with a Word document, a spreadsheet, a slide deck and a SQLite database, and behind it the Photos app showing the phone's camera roll.
Device Cloud on an Android phone: the Files tab showing the device's folders in the desktop client, with the app's Files, Remote, Presenter and Settings tabs below.
Files, on the device
The Photos app on the phone, maximised: albums across the top and a grid of the camera roll.
Photos, from the library
The phone's Presenter tab during a slide show: clocks for the talk and the slide, slide 3 of 4 with the next slide beside it, the speaker notes, and Back, Slides, End and Next.
Your notes, while the deck is on the wall
The phone's Remote tab: a large touchpad with Esc, Tab and arrow keys and a Keyboard button beneath it.
A touchpad for the screen across the room

Seven ways in, and you decide how many are open

The server binds to loopback until you say otherwise, and nothing off the device is served until a username and password are set. Every route past the first one is a switch you throw.

On the device

The app itself

Nothing to set up. The Files tab is a WebView on the loopback server — the same client every other device gets.

On the device

The platform's file manager

Nothing to set up. On My iPhone → DeviceCloud in Files, or DeviceCloud in the Android picker.

On the device

The share sheet

Send a file to Device Cloud from anywhere on the phone. It lands in Inbox and opens where it is best read.

Same network

Another device on this wifi

A password, then Share on this network. Announced over Bonjour as _devicecloud._tcp.

Same network

A drive in Finder or Explorer

Turn on Open as a network drive and mount /dav with the same password. Everything the Files app shows, as a disk — through the tunnel too, inside https. Off again every launch.

Anywhere

The public internet

A password, then Public tunnel. You get a public https:// address and a QR code for it. No account anywhere.

Same room

No network at all

Bluetooth, one file at a time, accepted by hand at the other end. Nothing moves until the other device says yes.

A file server, and then everything you would want to do with the files

There is exactly one file-management UI. What you see standing at the device is what a visitor on the other side of the tunnel sees.

The workspace

Monaco, a lazy file tree, and tabs that each keep their own undo stack, language and view state. A scratch buffer is open on arrival, so it is somewhere to type before it is somewhere to open a file.

Files

Listings, breadcrumbs, upload, download, rename, and a trash you can turn off if a delete should just be a delete. Cut, copy, move, zip or share several at once. Zip archives open as folders you walk into.

Search, as two questions

What you are looking for — names, and the text inside files — is asked apart from where to look. That is what lets "*.cs files containing TODO" be a search, which one box cannot express.

One desktop, every screen

Windows, a taskbar and a launcher in any browser. Under 640×480 every window stays maximised and re-fits when a phone turns or a foldable opens — so there is no second, smaller product to fall back to.

A desktop that follows you

The theme, the wallpaper, the taskbar and each app's settings are kept by the device, not by the browser — so every screen that opens the address opens your desktop, and a backup carries it. Window layouts stay with the screen they belong to.

A network drive

Mount the device in Finder, Explorer or any WebDAV client — mapped folders and the photo library included, read-only mappings still read-only. Deletes go to the device's trash. On for this run of the app only.

C# that builds in the browser

Open a .sln or .slnx and get completion, hover, signature help, go to definition, rename and squiggles across the whole solution. Build every target framework and Run console code — Roslyn in Web Workers, no SDK installed.

Word, Excel, PowerPoint

Opened, rendered and edited in the browser — or started new — then saved back surgically, so the parts of the package you did not touch survive byte-identical. Notes adds free-form pages and ink.

NuGet, restored on the device

Search, install, update and remove packages from .NET Code. Restore honours the repository's nuget.config, source generators run — the framework's, Razor's and every package's — and a private feed's credentials stay in the device keychain.

SQLite, opened onto its tables

Schema, keys and indexes, rows edited in place, and a query pane with results in a grid. Everything runs on the device against the file where it lies — a database is never downloaded to be read.

SQL Server and PostgreSQL, from the device

A browser cannot open a database socket, so the device does. Saved connections live on it with their passwords in its keychain — never in the browser — and you get schemas, a query editor with tabs, Explain, and cells you can edit on any table with a primary key. TLS required unless you say otherwise.

AI Chat, run by the device

OpenAI, Azure OpenAI, Anthropic, or anything that speaks the OpenAI protocol — LM Studio, Ollama. The key stays in the keychain, the reply belongs to the device so closing the window does not lose it, and the model's tools read and write your mapped folders only.

A DDL designer that does not run

Creating a table, dropping a column, changing a type — each ends as a statement in the query window with Run beside it. Seeing the script is the difference between changing a column and hoping.

Git, written from scratch

Objects, refs, the index, diff, merge, smart-HTTP transport and submodules, in managed C#. libgit2 P/Invokes native code and does not survive iOS Native AOT, so there is no version of this that is a binding.

Every git operation you reach for

Clone, stage and unstage by file or by hunk, diff, commit and amend, log, branches, merge, fetch, pull, push, rebase, cherry-pick, revert — with continue, skip and abort for the ones that stop — stash, blame and submodules.

Accounts that stay signed in

GitHub, GitLab, Azure DevOps, Gitea and anything else. The token goes to the keychain and never into the database, which is why a restored device keeps its accounts and has to sign in to them again.

Ahead and behind, kept true

Remotes are reached in the background on each repository's own cooldown, not the last time somebody pressed Fetch. A remote that cannot be reached is a timestamp that does not move, rather than an error on the screen.

A game library, and saves that travel

NES, SNES, Game Boy, GBA, Genesis, TurboGrafx-16 and N64 ROMs on the device become a box-art grid any browser can play, with a controller or the keyboard. Battery saves and four state slots live on the device, not in one browser. Off until you switch Games on.

The phone is the remote

A touchpad and keyboard for the desktop on the TV, a game pad drawn like the console you are playing — the browser sees one more gamepad, rumble included — and a presenter's view with notes, clocks and the next slide. The phone's input goes to that one browser tab and nowhere else.

The desktop on the TV, over AirPlay

On iPhone and iPad, mirror to an Apple TV and the TV shows the whole desktop instead of a copy of the phone's screen — and the Remote tab drives it. Behind its own switch; off, mirroring is ordinary mirroring.

The device's camera, on another screen

Photographer mode puts the viewfinder, shutter, video, lens, zoom, torch and filters in a browser across the room, and files every capture on the device as it is taken. Separately, a Webcam app saves from the viewing computer's own camera — on HTTPS or localhost, as browsers require.

A desktop from another era

Personalization dresses the whole desktop — chrome, wallpaper and sounds — as a DOS prompt, early Windows or a classic Mac, alongside Dark, Light and High Contrast. Every app follows the theme.

Mapped folders

Folders elsewhere on the device — a Documents folder, an external drive, a project tree, iCloud Drive — served without anything being copied in, and read-only if you want. Unmapping deletes nothing.

Photos, from the phone's library

A gallery app with your albums, a zooming full-screen viewer and a slideshow — and the same library as a folder in Files, nothing copied. Everything comes out as JPEG, so HEIC opens in any browser, and a tile asks for the size it is going to draw, not a twelve-megapixel original.

Nearby sharing over Bluetooth

Hand a file to a Device Cloud device in the same room with no network involved. The other end sees who is sending, the name and the size — and the radio advertises nothing until you turn listening on.

Drag straight onto the window

On desktop, a file dragged from Finder, Explorer or Files lands in the folder you are standing in. The drag is claimed at the window and uploaded in-process, so a half-gigabyte video never goes through a WebView's heap.

Backup that rebuilds, not remembers

On Apple platforms the document database snapshots to your private iCloud container minutes after a change. A linked repository's history travels as a git packfile, so a restore rebuilds the clone rather than remembering its name.

What is actually stored

Stats walks everything the device serves and says where the space went: by kind, by folder, the biggest files, the trash, the app's own data and each mapped folder's free space — with a way to open any of it in Files.

Diagnostics you switch on

An optional record of what was created, changed and read. An optional recording of every request the server answered — both sides, headers and bodies — held in memory only, never written down, and off again every launch.

Still serving when you look away

The server keeps running when the app is not in front. Desktop heads add a status-bar item, because the useful state of a desktop file server is "is it serving, and at what address" — which is exactly what a minimised window hides.

One table decides what a file opens into

So the listing, the workspace and the viewer page cannot disagree about it.

FileWhat opens it
Source, markup, notesThe Monaco editor. Markdown and HTML add a live preview beside what you are typing
ImagesA zooming viewer, and an editor — crop, rotate, draw, text annotations, undo/redo, export
Audio and videoA player with a transport bar that knows a sound file has no picture to go full screen with
PDFRendered page-at-a-time onto a canvas by a bundled pdf.js, because the Android WebView has no PDF engine of its own
Solutions and C#.sln and .slnx open in .NET Code, with IntelliSense, Build and Run — Roslyn in the page, nothing installed
SQLiteTables, schema, editable rows and a query pane. The one opener that never reads the file in the browser — the query runs on the device
Word, Excel, PowerPointOpened, rendered and edited in the browser, saved back surgically so untouched parts of the package survive byte-identical
Game ROMsAdded to the game library from the file manager, and played in a window or full screen — when Games is switched on
Anything elseThe only honest offer, which is a download

Sharing is always a deliberate act

Every way off the device is a switch, and every switch starts off. Throw one and see.

Off unless you turn it on

Share on this network
Needs a password first
Public tunnel
A public https:// address and a QR code
Open as a network drive
Off again every launch
Use this phone as a remote
Only the browser that claims it hears it
Nearby listening
Starts off every launch, every time
Photographer mode
And then the system's camera permission
Games
No app in the launcher until it is on
Writing to the photo library
A separate permission from reading it
Serve on loopback
The device's own Files tab

Loopback until you say otherwise. The server binds to the device alone until Share on this network or the tunnel is turned on.

No password, nothing served. Nothing off the device is answered until one is set — and the check lives on the server, not in the UI.

Sessions you can end. Visitors sign in and carry a cookie; Remember me keeps it 30 days, and changing the username or password ends every remembered session at once.

The owner is never challenged. The device's own Files tab is not asked for credentials. It is already inside.

Git off means 404. While git is off the Git app says so and every /api/git route refuses — including to someone holding a share link. Hiding a link is presentation, not a permission.

Secrets live in the keychain. Git tokens, database passwords, AI provider keys, NuGet feed credentials and the server password are in the platform keychain, not in the settings file and not in the database — and never sent to the browser.

Guessing is slow, and visitors are news. Repeated wrong passwords are throttled, and a new address arriving through the tunnel is a notification on the device.

Every incoming file is a question. A nearby transfer is accepted by hand at your end before a byte moves.

One app, one client, every screen

There is no separate web product and no separate phone product. The client that ships inside the app is the client a visitor gets on the other side of the tunnel — so what you see standing at the device is exactly what you are handing out.

Inside the app
runtime.NET 10, AOT- and trim-clean throughout
serverAn HTTP server embedded in the app, bound to loopback until you say otherwise
clientBlazor WebAssembly, published, zipped and embedded — then served to every visitor, the device included
gitWritten from scratch in managed C#. No native dependency, so it survives iOS Native AOT
c#Roslyn in two Web Workers — one to run, one for IntelliSense and builds
databasesSQLite, and SQL Server and PostgreSQL through SqlClient and Npgsql on the device
aiMicrosoft.Extensions.AI on the device — the browser never holds a key or calls a provider
driveWebDAV at /dav, through the same storage rules as the Files app
gameslibretro cores carried in the app and served by the device, so play needs no internet
filesThe app's own folder, folders mapped from elsewhere on the device, and the photo library
remoteA websocket from the phone's Remote, Controller and Presenter tabs to one browser tab, checked by origin
nearbyBluetooth, one file at a time, accepted by hand at the other end

On your phone today, on your desk shortly

The phone heads and the desktop heads are the same application. What differs between one platform's build and another's is the entry point, the manifest and the icon.

iPhone & iPad
iOS 15 and up
Available Download on theApp Store
Android
API 29 and up
Available Get it onGoogle Play
macOS
A real menu bar and a status-bar item
Coming soon
Windows
A system-tray item and drag from Explorer
Coming soon

Your files never left.

They were always on the device. Device Cloud just gives them an address — and gives you the switch.

macOS and Windows are coming soon.

Feedback

A bug, an idea, a platform you want next — it all reaches the people building Device Cloud. Your email is only used to reply to you.