-
-
Notifications
You must be signed in to change notification settings - Fork 450
Description
Jupyter AI v3 Codebase Split
Co-authors: @ellisonbg @Zsailer @jtpio @3coins @dlqqq
Summary
We're excited to announce a major milestone in Jupyter AI's development! Over the past month, we have been working diligently to restructure the Jupyter AI v3 codebase to create a more modular, developer-friendly architecture that will significantly improve the contribution experience for our community.
What We've Accomplished
🔧 Strategic Codebase Reorganization
As proposed in this discussion, the Jupyter AI v3 codebase has been thoughtfully split into multiple focused packages under the jupyter-ai-contrib organization, each with clear responsibilities and boundaries. This restructuring was carefully planned and executed based on the existing Jupyter AI v3 code architecture, ensuring that:
- All existing features have been preserved - No functionality has been removed
- New capabilities have been added - The split has enabled us to introduce additional features
- Code organization is more logical - Related functionality is now grouped together
- Dependencies are cleaner - Each package has only the dependencies it actually needs
New packages
Jupyter AI v3 has been split into the following subpackages:
- jupyter-ai-chat-commands - Default set of chat commands in Jupyter AI
- jupyter-ai-jupyternaut - Package which provides the Jupyternaut, the default AI persona, in Jupyter AI
- jupyter-ai-litellm - LiteLLM based model abstraction for Jupyter AI
- jupyter-ai-persona-manager - The core manager & registry for AI personas in Jupyter AI
- jupyter-ai-router - The core routing layer used in Jupyter AI to process chat messages
- jupyter-ai-tools - Core tools integration for Jupyter AI
- jupyter-server-documents - Server side document handling with improved output handling and kernel management/status
- jupyter-server-mcp - An MCP interface/extension for Jupyter Server
- jupyterlab-diff - JupyterLab commands to show cell and file diffs
📦 Upcoming Metapackage Architecture
In the next release, Jupyter AI v3 will transition to a metapackage structure. This means:
jupyter_aiwill only contain apyproject.tomlfile listing all subpackages as dependencies- Users will continue to install Jupyter AI exactly as before (
pip install jupyter-ai) - The installation will automatically pull in a curated set of subpackages that are ready for Jupyter AI's official release
- Developers can build customized AI extensions using specific subpackages they need
Benefits for the Community
For Contributors
- Powerful building blocks - Build your own AI extension using our libraries, without rewriting everything
- Lower barrier to entry - Smaller, focused codebases are easier to understand
- Faster development cycles - Work on specific packages without building the entire project
- Clearer contribution guidelines - Each package has focused scope and clear responsibilities
- Future flexibility - Separately versioned subpackages allow for API-breaking changes providing new major features in minor releases
For Users
- Accelerated feature delivery - Contributors can now focus on individual components, enabling parallel development and faster feature releases
- Same seamless experience - Installation and usage remain unchanged
- Enhanced reliability - Modular architecture reduces interdependency issues
Looking Forward
This architectural improvement positions Jupyter AI for sustainable growth and makes it easier than ever for developers to contribute to the project. Whether you're interested in working on core AI functionality, user interfaces, integrations, or documentation, there's now a clear path to get involved.
We believe this change will foster a more vibrant and active contributor community, ultimately leading to faster innovation and better software for everyone using Jupyter AI.
We will showcase the latest state of Jupyter AI v3 at JupyterCon 2025 in San Diego next week.
Get Involved
Ready to contribute? Check out our updated contribution guidelines and explore the new modular structure at https://github.com/jupyter-ai-contrib for more information. We're excited to see what the community builds with these improvements!
This restructuring represents months of careful planning and execution by our development team. We're grateful for the community's patience during this transition and excited about the enhanced development experience it provides.