中文 README · Web app · Releases
Tabst is a plain-text guitar-tab workspace built around AlphaTex. Write a score in CodeMirror, see it rendered by alphaTab, play it back, keep it in an ordinary folder, and use Git when you want version history.
The project follows a simple idea:
Guitar-tab writing should feel as direct and portable as writing Markdown.
AlphaTex files remain the source of truth. Tabst adds the editor, language assistance, workspace management, playback controls, printing, export, Git, tutorials, and desktop integration around them.
- AlphaTex editing with syntax highlighting, completion, hover, diagnostics, abbreviations, and ATDOC assistance.
- Live score rendering and playback powered by alphaTab.
- Editor-to-score and score-to-editor selection synchronization.
- Local repository workspaces with a file tree, templates, autosave, and workspace restoration.
- Configurable staff, track, zoom, tempo, volume, metronome, count-in, progress, and transport controls.
- Dedicated print preview plus MIDI, WAV, GP, and PDF-oriented workflows.
- Optional Git status, diff, staging, pull, and commit support for local workspaces.
- Built-in bilingual tutorials and interactive AlphaTex playgrounds.
- Public Tabst DB browsing without requiring an account.
- Tauri desktop application and a static Web build from the same renderer.
Tabst uses two related runtime modes:
- Desktop: Tauri provides filesystem, repository watching, Git, updater, settings, and operating-system capabilities. Public cloud scores are shown in a dedicated read-only Cloud workspace that reuses the normal Editor/Preview experience.
- Web: Sandbox remains the primary workspace. Public Tabst DB scores are
imported into Sandbox as regular
.atexfiles and refreshed byat.meta.sourcewhen the app initializes.
Cloud support is currently public-only. Sign-in, private libraries, and score publishing are not part of the current runtime.
| Target | Local build | Repository automation |
|---|---|---|
| Web | Supported | Deployed through GitHub Pages |
| macOS desktop | Supported | CI bundle validation and release workflow enabled |
| Windows desktop | Tauri build command available | Release workflow currently paused |
| Linux desktop | Tauri build command available | Release workflow currently paused |
The workflow files under .github/workflows/ are the source of truth for
current CI and release availability.
- Tauri 2 and Rust for the desktop runtime.
- React 19, TypeScript, and Vite for the renderer.
- CodeMirror 6 for text editing.
- alphaTab for score parsing, rendering, playback, and export.
- A Web Worker-based AlphaTex language pipeline for completion, hover, and diagnostics.
- Zustand for shared workspace and playback state.
- Tailwind CSS, Radix UI, and Lucide for the interface.
- Biome for formatting and linting, and Vitest for renderer unit tests.
Exact package versions and available scripts are defined in
package.json. Rust dependencies are defined in
src-tauri/Cargo.toml.
- Node.js 22 or a compatible current Node.js release.
- The pnpm version declared by
package.json#packageManager. - Rust stable and the platform prerequisites required by Tauri 2.
- Git for the optional in-app Git workspace and normal repository development.
pnpm installpnpm dev # Vite renderer plus the Tauri desktop shell
pnpm dev:react # Renderer only, using the Web runtime adapterThe Vite development server listens on 127.0.0.1:1420 by default.
pnpm check # Biome format/lint checks plus TypeScript
pnpm test # Renderer unit tests
pnpm build:web # Type-check and build the static Web target
pnpm verify:tauri # Web build, Rust checks/tests, bundle and config checksRun the checks relevant to the area you changed. pnpm verify:tauri includes
Rust validation but does not replace the renderer Vitest suite.
pnpm build # Default Tauri desktop build
pnpm build:web # Static Web build in dist/
pnpm build:tauri # Explicit Tauri desktop buildLocal release aliases are defined in package.json; official publishing
availability is controlled by the workflows in .github/workflows/.
- Architecture overview — runtime boundaries, state ownership, editing and preview flows, persistence, Cloud, printing, Git, and build topology.
- Development documentation — deeper AlphaTex, alphaTab, operations, roadmap, and historical notes.
- Repository instructions — stable invariants, ownership maps, cross-boundary change checklists, and validation expectations.
Read the nearest AGENTS.md before editing a deeper source directory.
Tabst.app/
├── src/renderer/ # React app, CodeMirror, alphaTab, stores, worker/LSP
├── src-tauri/ # Rust desktop runtime and Tauri commands
├── public/assets/ # Runtime fonts, soundfonts, and alphaTab assets
├── docs/dev/ # Engineering architecture, guides, plans, and reports
├── scripts/ # Build verification, vendor sync, and release helpers
└── .github/workflows/ # CI, Web deployment, and desktop release workflows
The .tmp/notebook-navigator directory is an unrelated sandbox and is not part
of the Tabst product runtime.
Tabst is licensed under the Mozilla Public License 2.0.
