{"id":13442853,"url":"https://github.com/joaotavora/sly","last_synced_at":"2026-03-11T08:31:41.271Z","repository":{"id":14879953,"uuid":"17603517","full_name":"joaotavora/sly","owner":"joaotavora","description":"Sylvester the Cat's Common Lisp IDE","archived":false,"fork":false,"pushed_at":"2025-12-12T00:00:07.000Z","size":25929,"stargazers_count":1393,"open_issues_count":183,"forks_count":153,"subscribers_count":40,"default_branch":"master","last_synced_at":"2026-03-02T22:48:46.340Z","etag":null,"topics":["common-lisp","emacs","lisp"],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joaotavora.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"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":"2014-03-10T18:24:08.000Z","updated_at":"2026-02-28T05:27:21.000Z","dependencies_parsed_at":"2023-09-24T10:33:40.799Z","dependency_job_id":"75a447fc-f705-4fff-834b-d92ec7d81b3a","html_url":"https://github.com/joaotavora/sly","commit_stats":{"total_commits":6466,"total_committers":126,"mean_commits":"51.317460317460316","dds":0.6699659758738015,"last_synced_commit":"f34c22289a2b3ab10e607f9f8822d62bb5c98cf5"},"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/joaotavora/sly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotavora%2Fsly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotavora%2Fsly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotavora%2Fsly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotavora%2Fsly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joaotavora","download_url":"https://codeload.github.com/joaotavora/sly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotavora%2Fsly/sbom","scorecard":{"id":525857,"data":{"date":"2025-08-11","repo":{"name":"github.com/joaotavora/sly","commit":"63131ef965d8ff3a6b79cc7aff8e8f5fc1a82aec"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":2,"reason":"Found 7/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":4,"reason":"3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T04:20:07.331Z","repository_id":14879953,"created_at":"2025-08-20T04:20:07.331Z","updated_at":"2025-08-20T04:20:07.331Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30376305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: 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":["common-lisp","emacs","lisp"],"created_at":"2024-07-31T03:01:52.168Z","updated_at":"2026-03-11T08:31:41.240Z","avatar_url":"https://github.com/joaotavora.png","language":"Common Lisp","funding_links":[],"categories":["Common Lisp","Applications","Emacs ##"],"sub_categories":["Development Tools","Third-party APIs"],"readme":"[![Build Status](https://travis-ci.org/joaotavora/sly.png?branch=master)](https://travis-ci.org/joaotavora/sly)\n[![MELPA](http://melpa.org/packages/sly-badge.svg)](http://melpa.org/#/sly)\n\n```lisp\n          _____    __   __  __        \n         / ___/   / /   \\ \\/ /               |\\      _,,,---,,_\n         \\__ \\   / /     \\  /                /,`.-'`'    -.  ;-;;,_\n        ___/ /  / /___   / /                |,4-  ) )-,_..;\\ (  `'-'\n       /____/  /_____/  /_/                '---''(_/--'  `-'\\_)\n\n```\n\nSLY is Sylvester the Cat's Common Lisp IDE for Emacs:\n\n* 🤔 Read [a short illustrated guide][tutorial]\n* 📽️ Scroll down this README for some [pretty gifs](#animated_gifs)\n* 📣 Read the [NEWS][6] file\n* 📚 Read the [manual][documentation]\n\nSLY's highlights are:\n\n* A [full-featured REPL](#repl) based on Emacs's `comint.el`.  Everything can be\n  copied to the REPL;\n* [Stickers](#stickers), or live code annotations that record values as code\n  traverses them.\n* [Flex-style completion](#company-flex-completion) out-of-the-box, using\n  Emacs's completion API.  Company, Helm, and other [supported\n  natively](#completion), no plugin required;\n* An interactive [Trace Dialog][trace-dialog];\n* Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;\n* Multiple inspectors and multiple REPLs;\n* \"Presentations\" replaced by [interactive backreferences](#repl) which\n  highlight the object and remain stable throughout the REPL session;\n* Support for [NAMED-READTABLES][11], [macrostep.el][12] and [quicklisp][13]\n* A [portable, annotation-based stepper][16] in [early][17] but functional\n  prototype stage.\n\nSLY is a fork of [SLIME][1]. We tracks its bugfixes, particularly to the\nimplementation backends.  All SLIME's familar features (debugger, inspector,\nxref, etc...) are still available, with improved overall UX.\n\nInstallation\n------------\n\nEnsure that [MELPA][10] is setup as usual and ask `M-x package-install` to\ninstall the package `sly`.\n\n*That's it*. `sly-mode` will automatically come up in every `.lisp` file. To\nfire up SLY, connect to a Lisp and get a friendly REPL, use `M-x sly`.\n\nEven if you already have SLIME installed, SLY will ask you and temporarily\ndisable it for the Emacs session.\n\n\u003ca name=\"animated_gifs\"\u003e\u003c/a\u003e\n_Obligatory animated gif section_\n-----------------------------------\n\n\u003ca name=\"company-flex-completion\"\u003e\u003c/a\u003e\n[Flex completion](http://joaotavora.github.io/sly/#Completion)\n\n![company-flex-completion](./doc/animations/company-flex-completion.gif)\n\n\u003ca name=\"repl\"\u003e\u003c/a\u003e\n[Backreferences](http://joaotavora.github.io/sly/#REPL-backreferences)\n\n![backreferences](./doc/animations/backreferences.gif)\n\n[Reverse i-search](http://joaotavora.github.io/sly/#REPL-commands)\n\n![reverse-isearch](./doc/animations/reverse-isearch.gif)\n\n\u003ca name=\"stickers\"\u003e\u003c/a\u003e\n[Stickers](http://joaotavora.github.io/sly/#Stickers)\n\n![stickers-example](./doc/animations/stickers-example.gif)\n\nInstall from git\n-------------------\n\nClone this repository, add this to your `~/.emacs` file and fill in the\nappropriate file names:\n\n```el\n(add-to-list 'load-path \"~/dir/to/cloned/sly\")\n(require 'sly-autoloads)\n(setq inferior-lisp-program \"/opt/sbcl/bin/sbcl\")\n```\n\nIf you wish to byte-compile SLY yourself (not needed generally) you can do `make\ncompile compile-contrib` in the dir where you cloned SLY.\n\nRunning the server standalone\n-----------------------------\n\nThis also works\n```\n$ sbcl\n...\n* (push #p\"~/dir/to/sly\" asdf:*central-registry*)\n* (asdf:load-system :slynk)\n* (slynk:create-server :port 4008)\n```\n\nNow in Emacs you can do `sly-connect` and give it the host and the 4008 port as\na destination.\n\nFaster startup\n--------------\n\nIf the Lisp program doesn't start fast enough for you, look in [the\nmanual][instasly], for ways to make it faster.\n\nAdditional Contribs\n-------------------\n\n* https://github.com/joaotavora/sly-quicklisp\n* https://github.com/joaotavora/sly-named-readtables\n* https://github.com/joaotavora/sly-macrostep\n* https://github.com/joaotavora/sly-stepper\n* https://github.com/mmgeorge/sly-asdf\n* https://github.com/40ants/sly-package-inferred\n\n\u003ca name=\"completion\"\u003e\u003c/a\u003e\nCompletion UIs\n--------------\n\nSLY works with most Emacs \"completion UIs\" out of the box, providing completion\nin source files and inputting Common Lisp symbol names from the minibuffer.\n[Company][14], Emacs 27's Fido-mode, and Helm are well-supported, as is\n\"vanilla\" completion.  For consistency, SLY defaults to its own UI,\n`sly-symbol-completion-mode`, useful if you don't have or like any of those.\nYou can turn it off.  Also, if you use Helm and wish to have even more\nHelm-based fanciness, you can use [helm-sly][15].\n\nLicense\n-------\n\nSLY is free software. All files, unless explicitly stated otherwise, are public\ndomain.  ASCII artwork is copyright by Felix Lee, Joan G. Stark and Hayley Jane\nWakenshaw.\n\nFork\n----\n\nSLIME is the work of Eric Marsden, Luke Gorrie, Helmut Eller, Tobias\nC. Rittweiler and [many others][8]. I forked SLIME because I used it daily,\nfor work, had a long list of hacks developed for myself, and wanted to share\nthem with others.\n\nIn 2013, SLIME development was stalling, patches and issues rotting. In early \n2014,  Luís Oliveira and myself moved SLIME to Github and set up its Travis CI \nsystem. I brought in the old bug reports from the Launchpad tracker, fixed \nlong-standing problems and submitted many changes, particularly to the \nunder-curated but popular \"contrib\" section.\n\nNow, the changes that SLY brings to the table are too deep at the Elisp and Lisp\nlevel to be accepted to SLIME, given its current focus on stability (for the\nrecord, I find this perfectly reasonable). The new features, such as stickers or\nmultiple inspectors, cannot be realized well using only the existing \"contrib\"\nsystem.  Finally, SLY frees itself from the shackles of Emacs 23 and supports\nEmacs 24.3+ only, allowing for much cleaner code and liberal use of lexical\nbinding.\n\nThe list of technical reasons is bigger than this though, and you can read up on\nthem in the [CONTRIBUTING.md][9] file.\n\nContributing\n------------\n\n[Open an issue or a pull request][4], but at least have a quick look at the\nfirst part [CONTRIBUTING.md][5] file for instructions on how to contribute.\n\n[1]: http://www.common-lisp.net/project/slime/\n[2]: https://github.com/joaotavora/sly/blob/master/README.md#fork\n[4]: https://github.com/joaotavora/sly/issues\n[5]: https://github.com/joaotavora/sly/blob/master/CONTRIBUTING.md\n[6]: https://github.com/joaotavora/sly/blob/master/NEWS.md\n[7]: https://www.youtube.com/watch?v=xqWkVvubnSI\n[8]: http://common-lisp.net/project/slime/doc/html/Credits.html#Credits\n[9]: https://github.com/joaotavora/sly/blob/master/CONTRIBUTING.md#architecture\n[10]: https://github.com/milkypostman/melpa\n[11]: https://github.com/joaotavora/sly-named-readtables\n[12]: https://github.com/joaotavora/sly-macrostep\n[13]: https://github.com/joaotavora/sly-quicklisp\n[14]: https://github.com/company-mode/company-mode\n[15]: https://github.com/emacs-helm/helm-sly\n[16]: https://zenodo.org/record/3742759\n[17]: https://github.com/joaotavora/sly-stepper\n[documentation]: http://joaotavora.github.io/sly\n[instasly]: http://joaotavora.github.io/sly/#Loading-Slynk-faster\n[trace-dialog]: http://joaotavora.github.io/sly/#Trace-Dialog\n[tutorial]: http://joaotavora.github.io/sly/#A-SLY-tour-for-SLIME-users\n\n\u003c!-- Local Variables: --\u003e\n\u003c!-- fill-column: 80 --\u003e\n\u003c!-- End: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaotavora%2Fsly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoaotavora%2Fsly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaotavora%2Fsly/lists"}