{"id":20249914,"url":"https://github.com/aaronkollasch/o2-tools","last_synced_at":"2026-05-05T16:11:23.274Z","repository":{"id":45669672,"uuid":"113700001","full_name":"aaronkollasch/o2-tools","owner":"aaronkollasch","description":"Tools for use with Orchestra 2","archived":false,"fork":false,"pushed_at":"2022-07-14T16:55:33.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T13:13:12.765Z","etag":null,"topics":["jupyter","o2","orchestra","slurm","ssh"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaronkollasch.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}},"created_at":"2017-12-09T20:43:56.000Z","updated_at":"2021-12-15T21:19:01.000Z","dependencies_parsed_at":"2022-09-23T14:30:50.934Z","dependency_job_id":null,"html_url":"https://github.com/aaronkollasch/o2-tools","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/aaronkollasch%2Fo2-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronkollasch%2Fo2-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronkollasch%2Fo2-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronkollasch%2Fo2-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronkollasch","download_url":"https://codeload.github.com/aaronkollasch/o2-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241696136,"owners_count":20004748,"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":["jupyter","o2","orchestra","slurm","ssh"],"created_at":"2024-11-14T09:56:09.049Z","updated_at":"2026-05-05T16:11:23.235Z","avatar_url":"https://github.com/aaronkollasch.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# o2-tools\nTools for use with Orchestra 2, an HPC cluster managed by the HMS Resesarch Computing group.  \n- `jobinfo.sh` Get info on SLURM jobs.  \n- `jupyter_o2` Run jupyter over ssh and connect to it in your browser.\n\n## jobinfo.sh\nA bash script that provides information on your SLURM jobs.\n\nUsage: `jobinfo` or `jobinfo \u003cjob id\u003e`  \nTab autocompletion of the job id is supported.\n\nSource this script in your `~/.bashrc` file.\n\n## jupyter_o2\nA command line tool to launch and connect to a Jupyter session on O2.\n(Now available as a package, [jupyter-o2](https://github.com/AaronKollasch/jupyter-o2))\n\nUsage: `jupyter_o2 \u003cUSER\u003e \u003csubcommand\u003e`\n\nExample: `jupyter_o2 js123 notebook`\n\nThis will follow the procedure described on the \n[O2 wiki](https://wiki.rc.hms.harvard.edu/display/O2/Jupyter+on+O2).\n`jupyter_o2` will launch an X11-enabled SSH session with port forwarding, \nstart an interactive node running `jupyter notebook`, \nSSH into that interactive node to allow requests to be forwarded,\nand finally open the notebook in your browser.\n\n### Configuration, etc.\n\n#### Installation\nRun jupyter_o2 with `./jupyter_o2` or copy the file into a folder within your `$PATH`.\n\n#### Edit `.jupyter-o2.cfg`\n- After running jupyter_o2 once, cancel at the PIN entry step using Ctrl-C.\nA configuration file should have been created at `~/.jupyter-o2.cfg`. Edit this file.\n- Change `MODULE_LOAD_CALL` and `SOURCE_JUPYTER_CALL` to commands that \nactivate your jupyter environment (more description in the file itself). \nIf one or both of these are not necessary, deleting everything after the `=`\nwill set it to an empty string.\n- Choose a `DEFAULT_JP_PORT` that is open on your machine,\nif the current default (`8887`) isn't already open. \nThe port can also be specified using `jupyter_o2 -p \u003cport\u003e`.\n\n#### Requirements\n##### Packages\n- Pexpect\n\n##### Optional\n- dnspython\n- pyobjc-framework-Quartz\n- pinentry (a command line tool)\n\njupyter_o2 has been tested with Python versions 2.7 and 3.6,\nand Pexpect version 4.3. However, other versions may work just as well.\n\n##### Operating system\n`jupyter_o2` has been tested on MacOS. It may work on Linux and it would likely require \nboth Cygwin and a Cygwin version of Python to work on Windows (for Pexpect and SSH).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronkollasch%2Fo2-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronkollasch%2Fo2-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronkollasch%2Fo2-tools/lists"}