{"id":45408,"library":"metakernel","title":"Metakernel","description":"Metakernel is a Jupyter/IPython kernel base class in Python, providing a framework for building custom kernels. Current version 1.0.0 requires Python >=3.11. Released under BSD license, maintained on GitHub by Calysto.","status":"active","version":"1.0.0","language":"python","source_language":"en","source_url":"https://github.com/Calysto/metakernel","tags":["jupyter","kernel","ipython","metakernel"],"install":[{"cmd":"pip install metakernel","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"required for kernel integration","package":"ipykernel","optional":false},{"reason":"required for protocol handling","package":"jupyter_client","optional":false}],"imports":[{"note":"Old import path before reorganization","wrong":"from metakernel.metakernel import MetaKernel","symbol":"MetaKernel","correct":"from metakernel import MetaKernel"},{"note":"Magic class is available directly from metakernel","wrong":"from metakernel.magic import Magic","symbol":"Magic","correct":"from metakernel import Magic"}],"quickstart":{"code":"from metakernel import MetaKernel\n\n# Minimal subclass to create a custom kernel\nclass MyKernel(MetaKernel):\n    implementation = 'MyKernel'\n    implementation_version = '0.1.0'\n    language = 'mylang'\n    language_version = '1.0'\n    language_info = {\n        'name': 'mylang',\n        'codemirror_mode': 'mylang',\n        'file_extension': '.my',\n        'mimetype': 'text/x-mylang',\n        'pygments_lexer': 'mylang-keywords',\n    }\n\n    def do_execute(self, code, silent, store_history=True, user_expressions=None, allow_stdin=False):\n        if not silent:\n            self.payload = [{'source': 'page', 'text': 'Executed: ' + code}]\n        return {'status': 'ok', 'execution_count': self.execution_count, 'payload': [], 'user_expressions': {}}\n\n# Install with kernelspec (run once)\n# from metakernel import install_kernel_spec\n# install_kernel_spec(MyKernel, 'mykernel', 'My Kernel')\n\nprint('Kernel class defined successfully')","lang":"python","description":"Defines a minimal custom kernel by subclassing MetaKernel and implementing do_execute."},"warnings":[{"fix":"Replace calls to get_kernel_io() with get_io().","message":"Breaking change in 1.0.0: Removed deprecated 'get_kernel_io' method. Use 'get_io' instead.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use 'register_magic()' method on kernel instance or via decorator.","message":"Breaking change in 1.0.0: Changed Magic registration API. Previously used 'magics.register()', now requires 'register_magic()'.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Define magic methods within the kernel class using @magic decorator.","message":"The 'magics' module is deprecated. Use direct 'MetaKernel' subclass methods for custom magics.","severity":"deprecated","affected_versions":">=0.12"},{"fix":"Run 'from metakernel import install_kernel_spec; install_kernel_spec(MyKernel, 'mykernel', 'My Kernel')' after defining kernel class.","message":"Kernel must be installed with 'install_kernel_spec()' before use; otherwise Jupyter cannot find it.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'1.0.0':20 '3.11':23 'base':7 'bsd':26 'build':15 'calysto':32 'class':8 'current':18 'custom':16 'framework':13 'github':30 'ipython':35 'jupyt':33 'jupyter/ipython':5 'kernel':6,17,34 'licens':27 'maintain':28 'metakernel':1,2,36 'provid':11 'python':10,22 'releas':24 'requir':21 'version':19","created_at":"2026-06-07T12:54:52.182023+00:00","updated_at":"2026-06-07T12:54:52.182023+00:00","problems":[{"fix":"Use 'from metakernel import MetaKernel' (no submodule).","cause":"Using wrong import path from older version or broken installation.","error":"ImportError: cannot import name 'MetaKernel' from 'metakernel'"},{"fix":"Replace 'get_kernel_io()' with 'get_io()'.","cause":"Method renamed in metakernel 1.0.0.","error":"AttributeError: type object 'MyKernel' has no attribute 'get_kernel_io'"},{"fix":"Pass both kernel_class, kernel_name, and display_name: 'install_kernel_spec(MyKernel, 'mykernel', 'My Kernel')'.","cause":"Signature changed: required display_name now third argument.","error":"TypeError: install_kernel_spec() missing 1 required positional argument: 'display_name'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/Calysto/metakernel","github":"https://github.com/Calysto/metakernel","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}