{"id":15287661,"url":"https://github.com/hipsterbrown/xs-dev","last_synced_at":"2026-04-14T06:08:06.425Z","repository":{"id":37479621,"uuid":"433938954","full_name":"HipsterBrown/xs-dev","owner":"HipsterBrown","description":"The quickest way for getting started with JS on devices","archived":false,"fork":false,"pushed_at":"2024-03-23T16:17:53.000Z","size":2423,"stargazers_count":34,"open_issues_count":25,"forks_count":12,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-03-23T17:25:29.543Z","etag":null,"topics":["esp32","esp8266","iot","moddable","pico"],"latest_commit_sha":null,"homepage":"https://xs-dev.js.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HipsterBrown.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-12-01T18:22:36.000Z","updated_at":"2024-03-23T17:25:33.976Z","dependencies_parsed_at":"2022-07-21T09:02:47.163Z","dependency_job_id":"8c5cf9ed-91a6-4bdb-b0c8-a01826a56283","html_url":"https://github.com/HipsterBrown/xs-dev","commit_stats":{"total_commits":143,"total_committers":9,"mean_commits":15.88888888888889,"dds":"0.18181818181818177","last_synced_commit":"35debe9616f4a93b423e7689db1be7d8b099fb6e"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HipsterBrown%2Fxs-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HipsterBrown%2Fxs-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HipsterBrown%2Fxs-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HipsterBrown%2Fxs-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HipsterBrown","download_url":"https://codeload.github.com/HipsterBrown/xs-dev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219846951,"owners_count":16556418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","esp8266","iot","moddable","pico"],"created_at":"2024-09-30T15:33:49.126Z","updated_at":"2026-03-16T23:01:08.891Z","avatar_url":"https://github.com/HipsterBrown.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./docs/src/assets/Logo.svg\" alt=\"xs-dev logo\" width=\"250\" /\u003e\n\n# CLI for automating the setup and usage of [Moddable XS tools](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md)\n\nThe Moddable SDK and associated dev board tooling is incredibly empowering for embedded JS hardware development, however the set up process can be tedious to follow when getting started. This project aims to streamline the install and environment configuration requirements across platforms in just a few commands.\n\n[Check out the documentation!](https://hipsterbrown.github.io/xs-dev/)\n\n**This project is a continual work in progress and v1, so breaking changes will be semantically-released with major version bumps.**\n\n## Requirements\n\n[Node.js](https://nodejs.org/en/), at least the [active LTS version](https://nodejs.org/en/about/previous-releases#nodejs-releases).\n\n_If you've never installed Node.js before, check out the [getting started guide for xs-dev](https://hipsterbrown.github.io/xs-dev/guide/00-prepare#nodejs-package-manager-optional)._\n\n[XZ utils](https://tukaani.org/xz/) are required to install the CLI due to a dependency for decompressing the ARM toolchain used for nrf52 development.\n\nIt can be installed with Homebrew on MacOS:\n\n```\nbrew install xz\n```\n\nOr as `xz-utils` on Linux distributions like [Ubunutu](https://packages.ubuntu.com/search?keywords=xz-utils):\n\n```\napt-get install xz-utils\n```\n\n**On Linux:**\n\nSetup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/focal/ssh-askpass) to prompt for permission when installing other tools and dependencies.\n\n\n## Install\n\n```\nnpm install -g xs-dev\n```\n\n```\npnpm install -g xs-dev\n```\n\n```\nyarn global add xs-dev\n```\n\n## Update to latest release\n\n```\nnpm update -g xs-dev\n```\n\n```\npnpm update -g xs-dev\n```\n\n```\nyarn global upgrade xs-dev\n```\n\n## Features \u0026 Usage\n\nCheck out the [docs](https://hipsterbrown.github.io/xs-dev/) to learn about using xs-dev and getting started with embedded JS development.\n\n## Development\n\nClone the project and install dependencies. We're using [pnpm](https://pnpm.io/) and [volta](https://volta.sh/) to manage packages and Node.\n\n```\ngit clone https://github.com/HipsterBrown/xs-dev.git\ncd xs-dev\npnpm install\n```\n\nLink dev version of CLI using `pnpm`, which will override any other globally installed version:\n\n```\npnpm link --global\npnpm link --global xs-dev\n```\n\nOr create an alias to clearly denote the local version of the CLI:\n\n```\nalias local-xs-dev=$PWD/bin/xs-dev\n```\n\nTo maintain the alias between shell sessions, for example I use zsh:\n\n```\necho \"alias local-xs-dev=$PWD/bin/xs-dev\" \u003e\u003e ~/.zshrc\n```\n\n## Docs\n\nThe documentation site is built with [Astro](https://astro.build) with the [Starlight template](https://starlight.astro.build/) and can be found in the `docs/` directory. When working on them locally, run `pnpm start:docs` to start the development server that watches for file changes and reloads the page.\n\n### 🚀 Docs Project Structure\n\nInside of your Astro + Starlight project, you'll see the following folders and files:\n\n```\n.\n├── public/\n├── src/\n│   ├── assets/\n│   ├── content/\n│   │   ├── docs/\n│   │   └── config.ts\n│   └── env.d.ts\n├── astro.config.mjs\n├── package.json\n└── tsconfig.json\n```\n\nStarlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.\n\nImages can be added to `src/assets/` and embedded in Markdown with a relative link.\n\nStatic assets, like favicons, can be placed in the `public/` directory.\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://hipsterbrown.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3051193?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNick Hehr\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=HipsterBrown\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#infra-HipsterBrown\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=HipsterBrown\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=HipsterBrown\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://moddable.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1427817?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndy Carle\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=andycarle\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://moddable.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6856458?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePeter Hoddie\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=phoddie\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/stc1988\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11245747?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSatoshi Tanaka\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=stc1988\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://linktr.ee/scr34mz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6640835?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndréas Hanss\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=ScreamZ\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/intGus\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/46197948?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGustavo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=intGus\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/gibson042\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1199584?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRichard Gibson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=gibson042\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://dev-portfolio-jay.netlify.app/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/115918351?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJay Kesarkar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=jaykesarkar\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://gustavo.is\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/51838513?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGustavo Gallegos\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=pricklywiggles\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://dtex.github.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/854911?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDonovan Buck\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=dtex\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/mkellner\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6822704?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Kellner\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=mkellner\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://brainofdane.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2007067?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDane Henson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=dahenson\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/kitazaki\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/23477407?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAyachika Kitazaki\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=kitazaki\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://andrew.nonetoohappy.buzz/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18542095?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndrew Chou\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HipsterBrown/xs-dev/commits?author=achou11\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhipsterbrown%2Fxs-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhipsterbrown%2Fxs-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhipsterbrown%2Fxs-dev/lists"}