{"id":43772167,"url":"https://wiki3-ai.github.io/jscl-kernel/","last_synced_at":"2026-02-17T05:01:03.765Z","repository":{"id":333074574,"uuid":"1136115064","full_name":"wiki3-ai/jscl-kernel","owner":"wiki3-ai","description":"Common Lisp JupyterLite kernel using JSCL","archived":false,"fork":false,"pushed_at":"2026-01-17T10:29:27.000Z","size":989,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T17:31:59.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wiki3-ai.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":"2026-01-17T04:59:32.000Z","updated_at":"2026-01-17T04:59:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/wiki3-ai/jscl-kernel","commit_stats":null,"previous_names":["wiki3-ai/jscl-kernel"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/wiki3-ai/jscl-kernel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiki3-ai%2Fjscl-kernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiki3-ai%2Fjscl-kernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiki3-ai%2Fjscl-kernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiki3-ai%2Fjscl-kernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wiki3-ai","download_url":"https://codeload.github.com/wiki3-ai/jscl-kernel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiki3-ai%2Fjscl-kernel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29534430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T05:00:25.817Z","status":"ssl_error","status_checked_at":"2026-02-17T04:57:16.126Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-02-05T17:00:20.181Z","updated_at":"2026-02-17T05:01:03.758Z","avatar_url":"https://github.com/wiki3-ai.png","language":null,"readme":"# jscl-kernel\n\nA Common Lisp kernel for JupyterLite using [JSCL](https://jscl-project.github.io/) (JavaScript Common Lisp).\n\n[![Build](https://github.com/wiki3-ai/jscl-kernel/actions/workflows/build.yml/badge.svg)](https://github.com/wiki3-ai/jscl-kernel/actions/workflows/build.yml)\n\n## Overview\n\nThis kernel allows you to run Common Lisp code directly in your browser using JupyterLite. It uses JSCL, a Common Lisp to JavaScript compiler, to execute Lisp code in a Web Worker.\n\n## Features\n\n- Run Common Lisp code in the browser without any server\n- Works with JupyterLite \u003e= 0.7.0\n- Basic code completion for Common Lisp symbols\n- Streaming output support\n\n## Installation\n\n### For JupyterLite\n\n```bash\npip install jupyterlite-core jupyterlite-jscl-kernel\njupyter lite build\n```\n\n### For GitHub Pages\n\n```bash\ngit checkout gh-pages\npip install jupyterlite-core .\njupyter lite build --output-dir docs\ngit add docs\ngit commit -m \"Rebuild gh-pages docs\" docs\ngit push\n```\n\n### For Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/wiki3-ai/jscl-kernel.git\ncd jscl-kernel\n\n# Install dependencies\npip install -e \".[dev]\"\njlpm install\njlpm build\n\n# Build the JupyterLab extension\njupyter labextension develop . --overwrite\n```\n\n## Usage\n\nAfter installing, you can create a new notebook and select \"Common Lisp (JSCL)\" as the kernel.\n\n### Example\n\n```lisp\n;; Define a function\n(defun factorial (n)\n  (if (\u003c= n 1)\n      1\n      (* n (factorial (- n 1)))))\n\n;; Call the function\n(factorial 10)\n```\n\n### Supported Features\n\nJSCL supports a subset of Common Lisp, including:\n\n- Special operators and macros\n- Multiple values\n- Lexical and special variables\n- Optional and keyword arguments\n- The LOOP macro\n- Basic CLOS support\n\nFor more details on JSCL's capabilities, see the [JSCL documentation](https://jscl-project.github.io/).\n\n## Testing\n\n### Run Unit Tests\n\n```bash\njlpm test\n```\n\n### Run Integration Tests\n\nIntegration tests use Playwright to test the kernel in a real browser environment:\n\n```bash\nsudo -E npx playwright install-deps \u0026\u0026 npx playwright install\npip install pytest pytest-playwright\nplaywright install chromium\njupyter lite build --output-dir dist\npytest tests/ -v --browser chromium\n```\n\n## Development\n\n### Project Structure\n\n```\njscl-kernel/\n├── packages/\n│   ├── jscl-kernel/          # Core kernel implementation\n│   │   ├── src/\n│   │   │   ├── kernel.ts     # Main kernel class\n│   │   │   ├── worker.ts     # JSCL Web Worker integration\n│   │   │   └── tokens.ts     # Type definitions\n│   │   └── style/\n│   └── jscl-kernel-extension/ # JupyterLab extension\n│       └── src/\n│           └── index.ts      # Extension plugin\n├── jupyterlite_jscl_kernel/  # Python package\n└── tests/                    # Integration tests\n```\n\n### Building\n\n```bash\njlpm install\njlpm build:prod\n```\n\n### Watching for Changes\n\n```bash\njlpm watch\n```\n\n## Requirements\n\n- Python \u003e= 3.10\n- JupyterLite \u003e= 0.7.0\n- JupyterLab \u003e= 4.0.0\n\n## License\n\nThis project is licensed under the GPL-3.0-or-later License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [JSCL Project](https://github.com/jscl-project/jscl) - The Common Lisp to JavaScript compiler\n- [JupyterLite](https://github.com/jupyterlite/jupyterlite) - Jupyter running in the browser\n- [jupyterlite/javascript-kernel](https://github.com/jupyterlite/javascript-kernel) - Inspiration for the kernel architecture\n","funding_links":[],"categories":["Interfaces to other package managers"],"sub_categories":["Isomorphic web frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/wiki3-ai.github.io%2Fjscl-kernel%2F","html_url":"https://awesome.ecosyste.ms/projects/wiki3-ai.github.io%2Fjscl-kernel%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/wiki3-ai.github.io%2Fjscl-kernel%2F/lists"}