{"id":13442705,"url":"https://github.com/hellerve/sbcli","last_synced_at":"2026-01-18T19:02:00.763Z","repository":{"id":55889205,"uuid":"84350977","full_name":"hellerve/sbcli","owner":"hellerve","description":"A REPL for my SBCL needs","archived":false,"fork":false,"pushed_at":"2024-06-12T09:29:17.000Z","size":78,"stargazers_count":99,"open_issues_count":7,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-12T05:12:01.292Z","etag":null,"topics":["common-lisp","repl","sbcl"],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","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/hellerve.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":"2017-03-08T18:02:36.000Z","updated_at":"2025-02-09T20:45:19.000Z","dependencies_parsed_at":"2024-05-02T11:07:39.561Z","dependency_job_id":"cee95dec-0377-4804-8d5e-08f421710e32","html_url":"https://github.com/hellerve/sbcli","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fsbcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fsbcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fsbcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fsbcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellerve","download_url":"https://codeload.github.com/hellerve/sbcli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411193,"owners_count":20934650,"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":["common-lisp","repl","sbcl"],"created_at":"2024-07-31T03:01:49.426Z","updated_at":"2026-01-18T19:02:00.755Z","avatar_url":"https://github.com/hellerve.png","language":"Common Lisp","readme":"# sbcli\n\nA better REPL for SBCL. It handles errors gracefully, is not too verbose, has\nreadline capabilities, including multiline input and reset, and has optional\nsyntax highlighting capabilities using [pygmentize](https://pygments.org/).\n\n## Installation\n\nFor most cases, calling `./install.sh` should suffice. It will install `sbcli`\ninto `$PREFIX/bin`, with the environment variable `PREFIX` defaulting to\n`/usr/local`. If you are using Mac and having issues with `cl-readline` see the\n[installation notes for cl-readline](https://github.com/mrkkrp/cl-readline#installation).\n\n## Dependencies\n\n`sbcli` depends on [alexandria(https://common-lisp.net/project/alexandria/], [cl-str](https://github.com/vindarel/cl-str) and\n[cl-readline](https://github.com/mrkkrp/cl-readline). If you have [Quicklisp](http://quicklisp.org/)\ninstalled, all the dependencies will be installed on `sbcli`s first launch. `sbcli`\nassumes that Quicklisp is installed under `~/quicklisp`.\n\n## Usage\n\nYou should be able to launch `sbcli` by just typing `sbcli`. Once you’re in the\nREPL, you can edit normally with readline capabilities. Hitting tab will\nautocomplete (note that if there is more than one possibility, you’ll have to\nhit tab twice).\n\nTyping `:help` will give you an overview over all the available special cases\nand give you an overview over what you’ve defined.\n\nTyping `:h symbol` will enter inspection mode for a symbol. Typing `CTRL-D`\nexits inspection mode.\n\nTyping `:doc symbol` prints the available documentation for this symbol.\n\nTyping `(symbol ?` also prints the available documentation for this symbol.\n\nTyping `:q`, `CTRL-D`, or `CTRL-C` will exit the REPL.\n\nTyping `:r` resets the environment.\n\nTyping `:d symbol` dumps the disassembly of a symbol.\n\nTyping `:t \u003cexpression\u003e` prints the type returned by an expression.\n\nTyping `:s filename` will save all of the expressions that were typed and\nevaluated to the file specified, in the format:\n\n```lisp\n(+ 1 2) ; =\u003e 3\n(* 6 10) ; =\u003e 60\n```\n\nOf course, depending on your result, this can result in very long lines, or\nbreak if your result contains newlines. Use at your own peril for now!\n\n## Customization\n\nIf you want you can add customizations to `sbcli`. On startup it will load a\nfile called `.sbclirc` in your home directory if it exists. You can execute\narbitrary code there, two of the more interesting values to set are `*prompt*`\nand `*ret*`. Check out an example resource file\n[here](https://github.com/hellerve/sbcli/blob/master/examples/.sbclirc).\n\n### Exposed Variables\n\nFor reference, here is a complete list of the variables we expose:\n\n```lisp\n; the name of the REPL, printed on top\n*repl-name*    ; =\u003e \"Veit's REPL for SBCL\"\n\n; the prompt and continuation prompt variables\n*prompt*       ; =\u003e \"sbcl\u003e \"\n*prompt2*      ; =\u003e \"....\u003e \"\n\n; the return value prompt\n*ret*          ; =\u003e \"=\u003e \"\n\n; where to store the history\n*hist-file*    ; =\u003e \"~/.sbcli_history\"\n\n; the history variable\n; while nothing prevents you from writing to it, i advise against it\n*hist*         ; =\u003e ()\n\n; you can optionally set a path to pygmentize to enable syntax-coloring\n; in the REPL. N.B: might lead to slower rendering speed\n;\n; if you're unsure what to put there, i suggest using\n; [which](https://github.com/eudoxia0/which)\n*pygmentize* ; =\u003e nil\n; you can also customize the pygmentize invocation\n*pygmentize-options* ; =\u003e (\"-s\" \"-l\" \"lisp\")\n\n; the last error encountered in the REPL. You can call\n; `invoke-debugger` on it!\n*error*\n```\n\n\u003chr/\u003e\n\nHave fun!\n","funding_links":[],"categories":["Common Lisp","REPLs ##"],"sub_categories":["Third-party APIs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fsbcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellerve%2Fsbcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fsbcli/lists"}