Strudel (live coding de música) — fork del hacklab: interfaz multiidioma, pestaña de proyectos, transporte con seek, guía de sonidos y lanzador de escritorio. Upstream: codeberg.org/uzu/strudel
Find a file
space-shell 055f009357 feat: Refactor Vim/Helix keybindings with shared helper functions
Factor out the repl-eval and repl-stop event dispatching code into
replEval() and replStop() helper functions that are shared between
Vim and Helix keybindings.

This refactoring:
- Reduces code duplication between Vim :w/:q and Helix :w/:q commands
- Makes the keybinding handlers more maintainable
- Properly implements Helix commands using the commands.of() API
- Ensures consistent behavior across both keybinding modes

The Helix keybindings now properly integrate with the REPL using the
same event dispatch mechanism as Vim, dispatching custom repl-evaluate
and repl-stop events with fallbacks to keyboard events.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-13 19:47:12 +01:00
.forgejo Add action to deploy 'beta' version to warm.strudel.cc 2025-10-23 10:41:29 +02:00
.vscode basic astro docs 2022-12-19 23:23:31 +01:00
bench Polish, rename, and document stepwise functions (#1262) 2025-02-02 20:26:44 +00:00
docs Merge branch 'main' of ssh://codeberg.org/uzu/strudel 2025-06-15 08:06:12 +01:00
examples fix for node 24 support #1718 2025-11-04 20:54:21 -06:00
jsdoc fix: @synonym -> @synonyms 2025-07-09 09:33:11 +02:00
my-patterns less github 2025-06-12 18:00:39 +01:00
packages feat: Refactor Vim/Helix keybindings with shared helper functions 2026-01-13 19:47:12 +01:00
samples simplify readme 2024-03-30 16:03:43 +01:00
src-tauri chore: update website packages 2025-01-26 13:06:48 +01:00
test Merge branch 'main' into glossing/midin-channels 2025-12-07 21:23:57 +01:00
tools/dbpatch fix(tool/dbpatch): add missing package name 2025-11-26 19:48:48 +01:00
website updates formatting 2025-12-15 13:22:13 +01:00
.eslintrc.json migrate eslint 2025-01-26 13:24:51 +01:00
.gitignore Updated the gitignore rules for vscode. 2025-09-13 21:36:24 +01:00
.nvmrc fix for node 24 support #1718 2025-11-04 20:54:21 -06:00
.prettierignore ignore .pnpm-store 2025-06-13 08:22:46 +01:00
.prettierrc FIXES: Warning about jsxBracketSameLine deprecation 2023-02-16 14:46:33 +01:00
CHANGELOG.md feat: Add Helix keybindings and Nix development environment 2025-12-08 09:44:02 +01:00
CONTRIBUTING.md doc: add version tagging guide to contributing.md 2025-07-06 17:00:33 +02:00
Dockerfile chore(docker): basic support added 2025-07-04 18:50:21 -04:00
eslint.config.mjs Revert "Revert "Merge pull request 'supradough poc' (#1362) from supradough into main"" 2025-09-12 10:08:55 +02:00
index.mjs update undocumented script 2024-03-23 14:08:02 +01:00
lerna.json update lerna 2023-12-30 23:19:22 +01:00
LICENSE Change to Affero GPL 2022-04-27 09:34:47 +01:00
package.json fix for node 24 support #1718 2025-11-04 20:54:21 -06:00
pnpm-lock.yaml feat: Add Helix keybindings and Nix development environment 2025-12-08 09:44:02 +01:00
pnpm-workspace.yaml fix issue #1368 euclidLegatoRot 2025-06-13 10:21:36 +02:00
README.md fix for node 24 support #1718 2025-11-04 20:54:21 -06:00
undocumented.json some clarification comments 2025-07-04 22:17:23 +02:00
vitest.config.mjs fix: import in vitest config 2025-05-01 23:49:47 +02:00
warm.js add CHANGELOG.md + basic script to generate 2025-11-27 22:25:32 +01:00

strudel

Live coding patterns on the web https://strudel.cc/

Running Locally

After cloning the project, you can run the REPL locally:

  1. Install Node.js 18 or newer
  2. Install pnpm
  3. Install dependencies by running the following command:
    pnpm i
    
  4. Run the development server:
    pnpm dev
    

Using Strudel In Your Project

This project is organized into many packages, which are also available on npm.

Read more about how to use these in your own project here.

You will need to abide by the terms of the GNU Affero Public Licence v3. As such, Strudel code can only be shared within free/open source projects under the same license -- see the license for details.

Licensing info for the default sound banks can be found over on the dough-samples repository.

Contributing

There are many ways to contribute to this project! See contribution guide. You can find the full list of contributors here.

Community

There is a #strudel channel on the TidalCycles discord: https://discord.com/invite/HGEdXmRkzT

You can also ask questions and find related discussions on the tidal club forum: https://club.tidalcycles.org/

The discord and forum is shared with the haskell (tidal) and python (vortex) siblings of this project.

We also have a mastodon account: social.toplap.org/@strudel