Skip to content

acoyfellow/desk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

desk

A personal app store for tiny edge devices. git push installs.

desk running on an M5StickC Plus 1.1

Apps live as Markdown files in a Cloudflare Artifacts git repo you own. They run in Worker Loader isolates with state in DO Facets. A small device — an M5StickC, a browser tab, anything that can poll HTTPS and paint pixels — renders them.

git commit -m "+ counter app"
git push

That's the install. Within seconds, the new app shows up in the device's dock. git revert is rollback. git log is the audit trail.

Apps can do anything a small isolate can do — read button input, render frames, persist per-app SQLite state, play sound, expose MCP tools so agents can drive them. The reference apps shipped with the fabric include a counter, a virtual pet, a chiptune jukebox, and an inbox surface that lets any MCP-capable agent ask the operator questions out-of-band.

You own the edge. The edge owns nothing about you.

Get started

Read the docs. Specifically:

Architecture

flowchart TB
  agent["agent (any MCP client)"]
  device["M5StickC Plus 1.1<br/>or browser tab"]

  subgraph fabric["desk fabric Worker"]
    direction LR
    mcp["DeskMcp DO"]
    runner["AppRunner DO<br/>(singleton)"]
    loader["Worker Loader<br/>(per-app isolate)"]
    facets[("DO Facets<br/>per-app SQLite")]
    src["ArtifactsAppSource<br/>(isomorphic-git)"]

    mcp <--> runner
    runner --> loader
    loader --> facets
    runner --> src
  end

  repo[("desk/apps<br/>Artifacts repo")]

  agent -- POST /mcp --> fabric
  device -- HTTPS poll<br/>/list + /run --> fabric
  src --> repo
Loading

License

MIT. See LICENSE.

About

A personal app store for tiny edge devices. git push installs apps; MCP gives agents a physical I/O surface.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors