{"id":"c01bdc95-2804-41a1-b1e5-1b54e6316c26","slug":"wedgie-dev","kind":"skill","name":"wedgie-dev","summary":"","owner":"clawdbotatg","repoUrl":"https://github.com/clawdbotatg/wedgie-dev","license":"MIT","licenseTier":"permissive","trust":"community","stars":5,"match":null,"fewStars":false,"format":"skill","createdAt":"2026-09-26T18:04:57.000Z","addedAt":"2026-10-21T23:54:06.083Z","logoUrl":"https://avatars.githubusercontent.com/u/257447554?u=5ce530342788fe095ffbdb3f1de836d593f3c41b&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["writing"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T18:49:43.478Z","sample":false,"url":"https://conduits.dev/tools/wedgie-dev","language":"HTML","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# wedgie.dev\n\nGive yourself a wedgie: a pocket computer from three off-the-shelf parts (a Pico, a Waveshare\nPico-LCD-1.3 hat, and a secure chip wedged in between). This repo is the website: order one, build\none, plug it in and put software on it, hand it to your agent.\n\n- `index.html` — the loader. The underwear and the plastic bar paint from the first byte of HTML\n  (the same boot screen as the device, picowallet `tools/bar` + `firmware/loader.py`); the bar fills\n  by real bytes of every asset, turns green, and hands off to the site.\n- `firmware/` — the wedgie firmware: the core (boot logo, WEDGIE drive, the slot that runs its one app,\n  saves, drivers). Published to `/fw/` by `tools/fw.mjs`, with the apps: each in its own repo\n  (`clawdbotatg/wedgie-*`), listed in `community.json` at a reviewed commit and signed with the firmware.\n- `src/serial/` — WebSerial: every plugged-in wedgie, identified by its board ID (`wedgies.ts`),\n  over MicroPython's raw REPL (`repl.ts`, from picowallet `factory/`); `install.ts` puts the core and\n  its one app on, `files.ts` reads and writes its files and saves. `src/pages/connect.ts` is the list at /connect, `src/pages/wedgie.ts` one wedgie,\n  `src/pages/format.ts` the wipe-and-test bench (/test, was /format), `src/pages/update.ts` the update bench (/update),\n  `src/pages/build.ts` the build-your-own page (/build: app, chip, colors; every choice is in the URL, so a link is a wedgie).\n\n**Heads-up for anyone who talks to a wedgie over USB:** about a second after it's plugged in, the\nwedgie adds its WEDGIE drive, and its serial port disappears and comes back as a new port. Find it by\nits ID, not its port, and don't soft-reset it just to restart its app. Details: `firmware/boot.py`.\n- `public/device/probe.py` — board-side test code (screen, buttons, chip, `ident`), pasted into the\n  raw REPL; nothing is written to flash.\n- `public/skill.md` — the agent skill index at wedgie.dev/skill.md; it links the other guides in `public/*.md` (usb, build, safe, shop, virtual, security, code, trustm).\n- `/code` (`src/pages/code.ts`) — make apps: the prompt for your AI, and the emulator (open a local folder or a\n  GitHub repo, play it, it re-runs when a file changes, saves kept and editable). `public/code.md` is the\n  app-building skill at wedgie.dev/code.md (app format, fast graphics with measured numbers).\n- Apps from other repos: a repo with `wedgie.json` (rules: `src/apps/appjson.mjs`, one copy for build and\n  site). Anyone adds one on their wedgie's page (`src/apps/repos.ts`, this browser only, marked not\n  reviewed). `community.json` lists repos on everyone's shelf, each pinned to a reviewed commit;\n  `node tools/community.mjs add owner/repo` copies that commit into `community/` (review the diff),\n  `node tools/sign.mjs` signs them with the firmware, and `tools/fw.mjs` publishes them first on the\n  site. Every app is its own repo (ours: `clawdbotatg/wedgie-*`); the steps are in `docs/APPS.md`.\n  Starter: github.com/clawdbotatg/wedgie-starter.\n- An app's internet (firmware 0.3.61+): `firmware/net.py` (`net.get`, `net.post`, `net.chain`, `net.price`), only for what\n  the app's wedgie.json lists in `\"net\"`. A site (0.3.67+) is the wedgie's own TLS 1.3 (`firmware/tls.py`,\n  `tls/README.md`): its wedgie.dev page (`src/serial/net.ts` answerTcp) carries the encrypted bytes through\n  relay.wedgie.dev (`relay/`), `wedgie.py net` straight to the site. Ethereum reads and the price: the same TLS to\n  mainnet.rpc.buidlguidl.com (`\"chain\"` allows it). Other chains go through `api/rpc.ts` (Alchemy key stays server-side). Tests: `node tools/test_net.mjs`, `node tools/netchip.mjs`, `python3 tls/test_tls.py`.\n- `art/` + `tools/art.py` — source renders and the web images made from them.\n\n```\nnpm install\nnpm run dev        # http://localhost:5173 (WebSerial works on localhost)\nnpm run build      # dist/, what Vercel serves\n```\n\nDeploy: Vercel, framework \"Other\", build `npm run build`, output `dist` (see `vercel.json`).\n\nMIT — everything, including the art in `art/`.\n"}