{"id":36546046,"url":"https://github.com/playproject-io/datashell","last_synced_at":"2026-01-12T06:02:14.785Z","repository":{"id":152320510,"uuid":"617194794","full_name":"playproject-io/datashell","owner":"playproject-io","description":"prototyping-environment","archived":false,"fork":false,"pushed_at":"2025-12-15T08:47:19.000Z","size":819,"stargazers_count":7,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-17T20:18:20.439Z","etag":null,"topics":["dat"],"latest_commit_sha":null,"homepage":"http://playproject.io/datashell/","language":"JavaScript","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/playproject-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-21T22:08:07.000Z","updated_at":"2025-12-15T08:47:22.000Z","dependencies_parsed_at":"2024-06-13T19:29:55.538Z","dependency_job_id":"25ba3bb8-22da-4795-a5aa-06949cf29b11","html_url":"https://github.com/playproject-io/datashell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/playproject-io/datashell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playproject-io%2Fdatashell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playproject-io%2Fdatashell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playproject-io%2Fdatashell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playproject-io%2Fdatashell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/playproject-io","download_url":"https://codeload.github.com/playproject-io/datashell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playproject-io%2Fdatashell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["dat"],"created_at":"2026-01-12T06:01:07.809Z","updated_at":"2026-01-12T06:02:14.779Z","avatar_url":"https://github.com/playproject-io.png","language":"JavaScript","readme":"# datashell\ndatashell command line tool\n\n## description\n\n\u003cimg src=\"logo/datashell-logo.png\" width=\"120\" height=\"120\"\u003e\n\n**A Peer-to-Peer Prototyping Environment for Web Apps with User-Owned Data Vaults**\n\nMoving data to the cloud solved users' early issues with backups and data loss, but today Big Tech companies own most of our data and control how it is used, leaving users vulnerable to privacy violations and data manipulation.\n\nAs a response to this unhealthy dependency to the Big Tech, Dat Ecosystem projects have been building a neutral common p2p infrastructure over the past 10 years. But cross-platform packaging, standards on how to build p2p apps, which give users sovereignity over their data, and educating developers how to build and bring p2p apps to the users still remains a challenge.\n\nTo address this problem, DataShell aims to create a new open standard for user-owned, GDPR compliant data vaults. Furthermore, we aim to provide developers with an open in-browser prototyping environment which they can use (or self-host) to build web apps based on the vault standard in order to create an open resilient app ecosystem that gives users full control, data portability and the ability to self-authenticate, verify data and permissionlessly combine it in new ways.\n\n\u003e [Read the paper](https://github.com/playproject-io/datashell/blob/main/paper/paper.pdf)\n\n\u003e [See the demo](https://playproject-io.github.io/datashell) (work in progress)\n\n## usage\n`npm install -g datashell`\n\n---\n\n### cli\n```bash\nds # prints help\n```\n\n---\n\n### config\n1. add `./index.html`\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n  \u003chead\u003e\u003cmeta charset=\"utf-8\"\u003e\u003clink rel=\"icon\" href=\"data:,\"\u003e\u003c/head\u003e\n  \u003cbody\u003e\u003cscript src=\"boot.js\"\u003e\u003c/script\u003e\u003c/body\u003e\n\u003c/html\u003e\n```\n2. add `./boot.js` and append a version number or label to imported `shim.js` url (see code below)\n   * for available version numbers or labels, check [drive.json](http://playproject.io/datashell/drive.json)\n```js\nconst env = { version: 'latest' }\nconst arg = { x: 321, y: 543 }\nconst url = 'https://playproject.io/datashell/shim.js'\nconst src = `${url}?${new URLSearchParams(env)}#${new URLSearchParams(arg)}`\nthis.open ? document.body.append(Object.assign(document.createElement('script'), { src })) : importScripts(src)\n```\n3. add a `./bundle.js` file using [browserify](https://www.npmjs.com/package/browserify) in the same folder as `boot.js`\n   * e.g. run `npx browserify -i STATE your-app.js -o bundle.js`\n4. open `index.html` in your browser\n\n---\n\n### api\n\n#### ⬡js - bootloader\n\n\n#### ⬢js - system\n\nFollowing the usage steps above, `your-app.js` will have access to the following api:\n##### `const STATE = require('STATE')`\n* see [doc/](https://github.com/playproject-io/datashell/tree/main/doc)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplayproject-io%2Fdatashell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplayproject-io%2Fdatashell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplayproject-io%2Fdatashell/lists"}