Workshop is a private-first macOS home for small, independent tools. Install only the apps you want; keep their code public and their working files, configuration, and credentials on your own machine.
Download Workshop for Apple Silicon · View the latest release · Build a tool for Workshop
Workshop does not upload, discover, edit, move, or delete your private files. A brand-new installation opens to an empty shelf. That is the product, not a setup failure.
| If you want to… | Start here |
|---|---|
| Install Workshop and add a tool | Install Workshop |
| Connect Markdown files with Slate | Set up Slate |
| Connect recurring reminders with Pulse | Set up Pulse |
| Run or modify Workshop from source | Develop Workshop |
| Build an independent app that runs in Workshop | Build for Workshop |
| Understand privacy, folders, or recovery | User guides |
Workshop currently supports Apple Silicon Macs running macOS 11 or later. Intel Macs, Windows, Linux, and mobile platforms are not supported yet. The installer is published through GitHub Releases.
- Download the notarized Workshop DMG.
- Open it and drag Workshop to Applications.
- Open Workshop from Applications.
- Choose Add New Tools, install Slate or Pulse, then open it from your shelf.
The first shelf is empty by design. Apps do not arrive pre-installed, and installing or removing an app never deletes its private files.
Workshop checks for signed updates when it opens and once per day while it is open. Choose Workshop → Check for Updates… to check immediately. Updates replace Workshop; they do not alter your private tool folders.
Each release includes Workshop-aarch64.dmg.sha256. To verify a downloaded
installer, place both files in the same folder and compare these outputs:
shasum -a 256 Workshop-aarch64.dmg
cat Workshop-aarch64.dmg.sha256They must match exactly. The installer is Developer ID-signed and Apple notarized; macOS should identify its signer without a security override. For the details, see Public Workshop Distribution.
| App | Job | What stays private |
|---|---|---|
| Slate | Read Markdown references you explicitly choose. | A folder with slate.config.json and the Markdown paths it declares. |
| Pulse | Manage recurring reminders and their history. | A folder with pulse.config.json; credentials remain in macOS Keychain. |
Slate and Pulse are independent apps with their own repositories, tests, and documentation. Workshop supplies the desktop frame, app installation, local folder lifecycle, settings, and narrowly scoped native capabilities.
Redline and Megaphone are contributor fixtures and future work, not available
apps in the public Workshop catalog. The fictional material in clients/ is
not your starting data set.
- In Workshop, choose Add New Tools → Slate → Install.
- Create a private folder outside the Workshop and Slate repositories.
- Put
slate.config.jsonin that folder, listing only the Markdown files Slate may read. - Open Slate, choose that folder, and select Connect.
Minimal slate.config.json:
{
"version": 1,
"sources": [
{
"id": "weekly-notes",
"label": "Weekly notes",
"path": "/absolute/path/to/weekly-notes.md",
"view": "markdown-tabs"
}
]
}Slate reads only declared files; it does not scan the selected folder. See Using Workshop: Slate for every view, folder browsing, and recovery behavior.
- In Workshop, choose Add New Tools → Pulse → Install.
- Create a private Pulse folder containing
pulse.config.json. - Open Pulse, choose that folder, and complete Connect Pulse.
Workshop remembers the selected folder after a successful connection. It gives Pulse constrained service access and keeps the corresponding credential in your macOS Keychain. Pulse owns its dashboard, runner, Android setup, backup, and configuration guidance; use the Pulse repository for those details.
Keep tool folders outside public repositories. A simple layout is:
~/Documents/workshop-private/
slate/
slate.config.json
pulse/
pulse.config.json
Slate’s Markdown files may live elsewhere; their absolute paths belong only in your private Slate configuration. Never commit private folders, credentials, personal inventories, source snapshots, or generated outputs.
Choose Workshop → Preferences… to change Workshop’s local appearance, two-character mark, and remembered tool folders.
- Appearance is Workshop-only. Apps may inherit its semantic tokens but must also work with their own standalone fallback styles.
- Folder actions let you review, change, reconnect, or forget a remembered folder. They never search, modify, move, or delete private files.
- A disconnected folder affects only that app. Reconnect it from Preferences or the app’s own connection flow.
Use this path to work on the shell, inspect its source, or contribute changes. You need macOS on Apple Silicon, Node.js 20 or later, npm, Rust, and the Tauri prerequisites.
git clone https://github.com/LindsayB610/workshop.git
cd workshop
npm ci
npm test
npm run typecheck
npm run desktop:tauri -- devThe last command opens the native development app. For shell-only browser UI
work, run npm run desktop:dev instead.
To build a local native bundle without publishing anything, run:
npm run desktop:tauri -- buildBefore proposing a change, run:
npm test
npm run test:coverage
npm run typecheck
npm run build
npm run public:checkFor the full public-source rehearsal—including a clean dependency install, browser tests, and native bundle—run:
npm run public:clean-clone -- --run-commands --keepWorkshop is a host, not a monorepo bucket for every tool. A tool should live in its own repository and own its UI, parsing, state, documentation, tests, and private configuration. Workshop owns the desktop shell, promotion/install state, settings, local folder lifecycle, semantic theme tokens, and generic native capabilities.
Before writing code:
- Read the Workshop plugin host contract.
- Follow Adding a Workshop Tool for declarations, privacy boundaries, docs, tests, and promotion.
- Keep real user data outside this repository and test the tool from a clean public consumer installation.
Tools must not import Workshop source code, depend on private Workshop data, or ask the host to learn their domain-specific configuration.
- Using Workshop — detailed Slate and Pulse setup
- Public installer and updates — download, verification, signatures, and supported platforms
- Private workspaces — local folder layout and runtime guardrails
- Troubleshoot local workspaces
- Workshop plugin contract
- Adding a Workshop Tool
- Public quickstart
- Public clean-clone install
- Public release checklist
- Signed updates and release operations
- Workshop appearance contract
- Repository roadmap
- Redline packet building — contributor fixture documentation
- Megaphone corpus building — contributor fixture documentation
apps/marketing-builds-desktop/ Tauri shell, plugin host, and desktop UI
packages/core/ Redline schemas, audits, and report generation
clients/ Fictional fixtures and public templates
docs/ User, contributor, product, and release guides
Workshop is licensed under the MIT License.