skills/mcp.dessn.ai/dessn-sync

dessn-sync

Installation
SKILL.md

Sync a local checkout with Dessn, both ways

A Dessn project holds its app's repository: the Library and every frame are checkouts of it on cloud sandboxes. Someone who codes in their own clone pushes their working tree to a frame's copy in one call, and gets back the build and its picture. Their own git (index, branch, stash) is never touched.

The push

  1. Find the project and a surface. dessn_projects_search({ query }) gives the project's link; dessn_surfaces_list({ project, query }) its Library surfaces, each with a route and a link.

  2. A copy to push to. The Library's own frames are never written. Make a page and a copy on it, once:

    • dessn_pages_create({ project, title: 'Local · <branch>', private: true, key })
    • dessn_nodes_create({ page, key, items: [{ kind: 'frame', from: { frame: <the surface's link>, copy: true }, x: 0, y: 0 }] }): its answer's results[0].id is the copy; its link is <page>?frameId=<id>.

    Push to the same copy for every later change: it keeps what was last pushed.

  3. The commit both sides share. dessn_canvas_get({ target: <the page or the copy's link> }) answers each frame's upstream: { repo, branch, commit, subdir? } (so does dessn_files_list as at.upstream). commit (U) is the repository commit the Library was built from; the frame's own commit and base are Dessn's and no clone has them.

  4. The patch, from the person's clone, without touching their index:

Installs
90
First Seen
6 days ago