{"id":20749293,"url":"https://github.com/agnostiqhq/covalent-ssh-plugin","last_synced_at":"2025-10-08T07:42:46.110Z","repository":{"id":39742685,"uuid":"465596564","full_name":"AgnostiqHQ/covalent-ssh-plugin","owner":"AgnostiqHQ","description":"Executor plugin interfacing Covalent with remote backends using SSH","archived":false,"fork":false,"pushed_at":"2025-10-06T17:08:44.000Z","size":333,"stargazers_count":9,"open_issues_count":8,"forks_count":5,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-10-06T19:13:38.639Z","etag":null,"topics":["covalent","data-pipeline","distributed-computing","etl","machinelearning","parallelization","pipelines","python","python3","quantum-computing","workflow","workflow-automation"],"latest_commit_sha":null,"homepage":"https://covalent.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgnostiqHQ.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-03T06:30:38.000Z","updated_at":"2024-02-26T08:47:38.000Z","dependencies_parsed_at":"2023-12-11T18:25:04.225Z","dependency_job_id":"5e8b0f32-8eb1-4069-a240-5788040a61e0","html_url":"https://github.com/AgnostiqHQ/covalent-ssh-plugin","commit_stats":{"total_commits":58,"total_committers":14,"mean_commits":4.142857142857143,"dds":0.6206896551724138,"last_synced_commit":"dcd5fc221460e992e7ec5dccac92bc8f0fd833cb"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":"AgnostiqHQ/covalent-executor-template","purl":"pkg:github/AgnostiqHQ/covalent-ssh-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgnostiqHQ%2Fcovalent-ssh-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgnostiqHQ%2Fcovalent-ssh-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgnostiqHQ%2Fcovalent-ssh-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgnostiqHQ%2Fcovalent-ssh-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgnostiqHQ","download_url":"https://codeload.github.com/AgnostiqHQ/covalent-ssh-plugin/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgnostiqHQ%2Fcovalent-ssh-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278909715,"owners_count":26066887,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["covalent","data-pipeline","distributed-computing","etl","machinelearning","parallelization","pipelines","python","python3","quantum-computing","workflow","workflow-automation"],"created_at":"2024-11-17T08:22:06.459Z","updated_at":"2025-10-08T07:42:46.092Z","avatar_url":"https://github.com/AgnostiqHQ.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u0026nbsp;\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/AgnostiqHQ/covalent-ssh-plugin/main/assets/ssh_readme_banner.jpg\" width=150%\u003e\n\n[![covalent](https://img.shields.io/badge/covalent-0.177.0-purple)](https://github.com/AgnostiqHQ/covalent)\n[![python](https://img.shields.io/pypi/pyversions/covalent-ssh-plugin)](https://github.com/AgnostiqHQ/covalent-ssh-plugin)\n[![tests](https://github.com/AgnostiqHQ/covalent-ssh-plugin/actions/workflows/tests.yml/badge.svg)](https://github.com/AgnostiqHQ/covalent-ssh-plugin/actions/workflows/tests.yml)\n[![codecov](https://codecov.io/gh/AgnostiqHQ/covalent-ssh-plugin/branch/main/graph/badge.svg?token=QNTR18SR5H)](https://codecov.io/gh/AgnostiqHQ/covalent-ssh-plugin)\n[![apache](https://img.shields.io/badge/License-Apache_License_2.0-blue)](https://www.apache.org/licenses/LICENSE-2.0)\n\n\u003c/div\u003e\n\n## Covalent SSH Plugin\n\nCovalent is a Pythonic workflow tool used to execute tasks on advanced computing hardware. This executor plugin interfaces Covalent with other machines accessible to the user over SSH. It is appropriate to use this plugin to distribute tasks to one or more compute backends which are not controlled by a cluster management system, such as computers on a LAN, or even a collection of small-form-factor Linux-based devices such as Raspberry Pis, NVIDIA Jetsons, or Xeon Phi co-processors.\n\nTo use this plugin with Covalent, simply install it using `pip`:\n\n```shell\npip install covalent-ssh-plugin\n```\n\nThe following shows an example of how a user might modify their Covalent [configuration](https://covalent.readthedocs.io/en/latest/how_to/config/customization.html) to support this plugin:\n\n```shell\n[executors.ssh]\nusername = \"user\"\nhostname = \"host.hostname.org\"\nremote_cache_dir = \"/home/user/.cache/covalent\"\nssh_key_file = \"/home/user/.ssh/id_rsa\"\npython_path = \"python\"\nconda_env = \"\"\n```\n\nThis setup assumes the user has the ability to connect to the remote machine using `ssh -i /home/user/.ssh/id_rsa user@host.hostname.org` and has write-permissions on the remote directory `/home/user/.cache/covalent` (if it exists) or the closest parent directory (if it does not).\n\nIf you are using a named conda environment you can use the `conda_env` parameter to set the name of your conda environment. However if you wish use a specify a particular python binary you can configure the `python_path` parameter to the absolute path where python is located on the remote machine.\n\nWithin a workflow, users can decorate electrons using the default settings:\n\n```python\nimport covalent as ct\n\n@ct.electron(executor=\"ssh\")\ndef my_task():\n    import socket\n    return socket.gethostname()\n```\n\nor use a class object to customize behavior within particular tasks:\n\n```python\nexecutor = ct.executor.SSHExecutor(\n    username=\"user\",\n    hostname=\"host2.hostname.org\",\n    remote_cache_dir=\"/tmp/covalent\",\n    ssh_key_file=\"/home/user/.ssh/host2/id_rsa\"\n)\n\n@ct.electron(executor=executor)\ndef my_custom_task(x, y):\n    return x + y\n```\n\nFor more information on how to get started with Covalent, check out the project [homepage](https://github.com/AgnostiqHQ/covalent) and the official [documentation](https://covalent.readthedocs.io/en/latest/).\n\n## Release Notes\n\nRelease notes are available in the [Changelog](https://github.com/AgnostiqHQ/covalent-ssh-plugin/blob/main/CHANGELOG.md).\n\n## Citation\n\nPlease use the following citation in any publications:\n\n\u003e W. J. Cunningham, S. K. Radha, F. Hasan, J. Kanem, S. W. Neagle, and S. Sanand.\n\u003e *Covalent.* Zenodo, 2022. https://doi.org/10.5281/zenodo.5903364\n\n## License\n\nCovalent is licensed under the Apache License 2.0. See the [LICENSE](https://github.com/AgnostiqHQ/covalent-ssh-plugin/blob/main/LICENSE) file or contact the [support team](mailto:support@agnostiq.ai) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagnostiqhq%2Fcovalent-ssh-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagnostiqhq%2Fcovalent-ssh-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagnostiqhq%2Fcovalent-ssh-plugin/lists"}