{"id":23100754,"url":"https://github.com/p3r7/repl","last_synced_at":"2025-04-03T20:45:38.365Z","repository":{"id":43387421,"uuid":"508583184","full_name":"p3r7/repl","owner":"p3r7","description":"access norns' repl from a script","archived":false,"fork":false,"pushed_at":"2023-11-29T13:03:26.000Z","size":5101,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T02:41:02.928Z","etag":null,"topics":["monome","monome-norns","norns","norns-script","websocket"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/p3r7.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}},"created_at":"2022-06-29T07:04:47.000Z","updated_at":"2023-04-16T07:27:39.000Z","dependencies_parsed_at":"2024-12-16T23:35:17.189Z","dependency_job_id":"e6549887-ead8-4389-a096-73e9ff6efb66","html_url":"https://github.com/p3r7/repl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p3r7%2Frepl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p3r7%2Frepl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p3r7%2Frepl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p3r7%2Frepl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p3r7","download_url":"https://codeload.github.com/p3r7/repl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247078804,"owners_count":20879951,"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":["monome","monome-norns","norns","norns-script","websocket"],"created_at":"2024-12-16T23:35:03.264Z","updated_at":"2025-04-03T20:45:38.349Z","avatar_url":"https://github.com/p3r7.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# repl\n\n![screenshot](https://norns.community/community/eigen/repl.png)\n\naccess norns' repls (both maiden and supercollider) either:\n- as a script\n- at any time when another script is launched (`repl` mod)\n\n\n## instructions\n\n- `E3`: switch between the 2 REPLs\n- `E2`: scroll UP/DOWN\n- `K1` + `E2`: scroll LEFT/RIGHT\n\nusing a keyboard, one can type / edit at the prompt.\n\nadditionally:\n\n- `Enter`: submit prompt to current REPL\n- directional arrows `↑`, `↓`: browse input history\n- `Alt` + directional arrows: scroll UP/DOWN/LEFT/RIGHT\n- standard Unix/Emacs bindings (`Ctrl+P`, `Ctrl-N`, `Ctrl+A`, `Ctrl+E`, `Ctrl+W`, `Ctrl+K`, `Ctrl+Y`, `Ctrl+L`) work\n\n\n## implementation details\n\ni couldn't make cqueue \u0026 COPAS-based websocket clients work reliably within a norns script (generally sending works but registering a callback to listen for messages tends to block everything).\n\ni resorted to using the hackish approach to use a websocket \u003c-\u003e OSC gateway\n- [gateway itself](./main.go), written in golang\n- [lua binding lib](./lib/repl_osc_gw.lua)\n\n`@infinitedigits` / @[`schollz`](https://github.com/schollz)' [dust2dust](https://github.com/schollz/dust2dust) is the major source of inspiration.\n\nplease note that compiling the golang executable is a bit too intensive for norns (it slows it down to a crawl). hence i recommend compiling from a more beefy computer using:\n\n    $ env GOOS=linux GOARCH=arm go build -o repl-ws-osc-gw\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp3r7%2Frepl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp3r7%2Frepl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp3r7%2Frepl/lists"}