{"id":21064734,"url":"https://github.com/ideonate/metis","last_synced_at":"2026-05-07T18:10:47.460Z","repository":{"id":80957422,"uuid":"205165618","full_name":"ideonate/metis","owner":"ideonate","description":"Start up Jupyter Lab or Notebook instances directly from this Chrome extension","archived":false,"fork":false,"pushed_at":"2019-08-29T13:12:03.000Z","size":772,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T20:52:39.958Z","etag":null,"topics":["chrome-extension","jupyter","jupyterlab"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/ideonate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2019-08-29T13:03:24.000Z","updated_at":"2023-09-18T22:00:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"21192801-4c69-44f3-9ed7-8576f2811a04","html_url":"https://github.com/ideonate/metis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fmetis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fmetis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fmetis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fmetis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideonate","download_url":"https://codeload.github.com/ideonate/metis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243507676,"owners_count":20301877,"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":["chrome-extension","jupyter","jupyterlab"],"created_at":"2024-11-19T17:51:28.789Z","updated_at":"2026-05-07T18:10:42.435Z","avatar_url":"https://github.com/ideonate.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Metis: Jupyter controller as a Chrome Extension\n\nStart up Jupyter Lab or Notebook instances directly from Chrome into the current tab. Logs and stop button are available within the browser.\n\nYou no longer need to switch back and forth between terminal and browser - do everything from Chrome!\n\nExperimental - please try out if you enjoy tinkering. Tested on MacOS, should work on Linux, needs further development for Windows.\n\n![Metis Running Screenshot](screenshots/running_server.png)\n\nYou can specify whether you want to start in Jupyter Lab or the standard Notebook format.\n\nSpecify the root folder for the Jupyter instance.\n\nOptionally supports virtualenvs through [Virtualenv Wrapper](https://virtualenvwrapper.readthedocs.io/en/latest/index.html).\n\nExpects Jupyter notebook/lab to already be installed globally or in the virtualenv.\n\n## Installation\n\nMetis uses Chrome's [native messaging](https://developer.chrome.com/extensions/nativeMessaging) functionality so requires both a host (Python3 server) and the client (Chrome extension) to be installed.\n\nFirst step is to clone this repo onto your hard drive somewhere:\n\n`git clone https://github.com/ideonate/metis`\n\n### Host installation\n\nRun metis/controller/install_host.sh from the terminal.\n\n### Chrome Extension installation\n\nIn Chrome, go to [chrome://extensions/](chrome://extensions/)\n\nClick the button to enter __Developer Mode__ if not already selected.\n\nClick __Load unpacked__ and locate the metis/chrome folder. Click __Select__.\n\n## Usage\n\nIn a new browser tab (or one you are happy to lose) click the Metis icon:\n\n![Metis icon](screenshots/stopped_server.png)\n\nEnter a Virtualenv name or leave blank to run Jupyter globally. If using a Virtualenv name, this should be the [Virtualenv Wrapper](https://virtualenvwrapper.readthedocs.io/en/latest/index.html) name (i.e. the name you would use with the `workon` command).\n\nEnter the full path of the desired root folder for the Jupyter file tree.\n\nDeselect the Jupyter Lab checkbox if you want the old-style notebook interface only (note Jupyter Lab must of course be installed for this to work: `pip install jupyterlab`).\n\nClick __Launch__. The Jupyter server should be started, and the tab reloaded to display the UI at the correct URL.\n\nClick the Metis icon again if you want to view Jupyter logs or to click the __Stop__ button.\n\nOnce stopped, you can click __Launch__ again to start a completely new Jupyter instance, possibly on a different port.\n\n## Caveats\n\nPlease note that Metis is experimental at this stage. I am happy to receive reports of problems and other feedback, but please don't be disappointed if it doesn't work easily for you.\n\nThere may be complications due to the environment in which Chrome is running. To debug, you can run Chrome with logging from the terminal:\n\n`/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --enable-logging --v=1`\n\nHowever, by running from the terminal you may change the environment (e.g. env variables) compared to normal running of Chrome!\n\nTo uninstall, remove the Chrome extensions from the extensions page and run the metis/controller/uninstall_host.sh script to remove the host.\n\n## Contact\n\nPlease get in touch with any feedback or questions: [dan@ideonate.com](mailto:dan@ideonate.com).\n\n## Acknowlegements\n\nChrome Native Messaging components are based on [Chrome examples](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging).\n\nIcon from [iconfinder](https://www.iconfinder.com/icons/56191/drive_server_icon) licensed under CC.\n\n## License\n\nThis code is released under an MIT license.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fideonate%2Fmetis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fideonate%2Fmetis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fideonate%2Fmetis/lists"}