An enhanced Common Lisp REPL with terminal, browser, and Emacs interfaces, featuring syntax highlighting, visualization, and profiling.
ICL (Interactive Common Lisp) is a modern, feature-rich REPL environment for Common Lisp that significantly improves the interactive development experience. It provides a unified interface across terminals, web browsers, and Emacs, making Lisp programming more accessible and productive by offering enhanced editing, interactive visualization, and comprehensive tooling.
Common Lisp developers seeking a modern, interactive development environment with advanced REPL features, visualization capabilities, and cross-platform support. It is particularly valuable for developers working with multiple Lisp implementations (SBCL, CCL, ECL, etc.) or those integrating with Emacs via SLY/SLIME.
Developers choose ICL for its multi-interface REPL that works seamlessly in terminal, browser, and Emacs, its extensive built-in tooling for debugging, profiling, and visualization, and its extensible architecture that supports custom visualizations and AI integration. Unlike basic REPLs, ICL offers interactive data visualization, performance profiling with flame graphs, and a unified command system across all interfaces.
Interactive Common Lisp: an enhanced REPL
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified REPL across terminals, browsers, and Emacs via SLY/SLIME integration, as shown in the multi-interface demos, ensuring consistent tooling regardless of environment.
Offers built-in visualizations for class hierarchies, hash tables, JSON, SVG, and more, with extensibility through custom `icl-runtime:visualize` methods, enhancing data inspection directly in the REPL.
Includes interactive Speedscope flame graphs for performance analysis on SBCL, enabling detailed bottleneck identification with commands like `,flame`, as documented in the profiling section.
Features a wide array of commands for navigation, documentation, debugging, and AI-powered explanations via `,explain`, with persistent history and extensible architecture for custom workflows.
Key tools like flame graph profiling and code coverage are only available for SBCL, reducing functionality for users of CCL, ECL, or other supported Lisp implementations, as noted in the README.
Building from source requires ocicl and libfixposix-devel, and AI integration depends on third-party CLI tools (Gemini, Claude, Codex), adding setup complexity and potential installation hurdles.
Custom visualizations are sandboxed with strict CSP and sanitization, which can block legitimate JavaScript; disabling requires an unsafe flag (`--unsafe-visualizations`), complicating trusted code use.