{"id":30237999,"url":"https://github.com/seqeralabs/tower-agent","last_synced_at":"2026-02-23T13:19:59.153Z","repository":{"id":44688914,"uuid":"416708033","full_name":"seqeralabs/tower-agent","owner":"seqeralabs","description":"Agent app that allows connecting remote batch schedulers to Tower Cloud","archived":false,"fork":false,"pushed_at":"2025-06-25T09:29:50.000Z","size":319,"stargazers_count":9,"open_issues_count":10,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-08-10T05:59:37.637Z","etag":null,"topics":["nextflow"],"latest_commit_sha":null,"homepage":"https://cloud.tower.nf","language":"Java","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/seqeralabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2021-10-13T11:16:07.000Z","updated_at":"2025-06-25T09:14:06.000Z","dependencies_parsed_at":"2023-11-24T06:40:19.327Z","dependency_job_id":"cc66b557-4524-4838-a87d-d09d3f5703ab","html_url":"https://github.com/seqeralabs/tower-agent","commit_stats":{"total_commits":91,"total_committers":3,"mean_commits":"30.333333333333332","dds":0.02197802197802201,"last_synced_commit":"d758993f49546b2ee77e1cb5071a3553756bfd14"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/seqeralabs/tower-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seqeralabs%2Ftower-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seqeralabs%2Ftower-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seqeralabs%2Ftower-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seqeralabs%2Ftower-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seqeralabs","download_url":"https://codeload.github.com/seqeralabs/tower-agent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seqeralabs%2Ftower-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270515665,"owners_count":24598440,"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-08-15T02:00:12.559Z","response_time":110,"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":["nextflow"],"created_at":"2025-08-15T02:59:05.930Z","updated_at":"2026-02-23T13:19:59.111Z","avatar_url":"https://github.com/seqeralabs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Tower Agent\n\nTower Agent allows Tower to launch pipelines on HPC clusters that do not allow direct access through an SSH client.\n\nTower Agent is a standalone process that when executed in a node that can submit jobs to the cluster (i.e. the login node) it establishes an authenticated secure reverse connection with Tower, allowing Tower to submit and monitor new\njobs. The jobs are submitted on behalf of the same user that it's running the agent process.\n\n### Installation\n\nTower Agent it is distributed as a single binary executable file. You only need to download it and execute it.\n\n1. Download the latest Agent binary from Github: \n```\ncurl -fSL https://github.com/seqeralabs/tower-agent/releases/latest/download/tw-agent-linux-x86_64 \u003e tw-agent\n```\n\n2. Make it executable:\n```\nchmod +x ./tw-agent\n```\n\n3. (OPTIONAL) Move it into a folder that is in your path.\n\n### Quick start\n\nBefore running the Agent:\n- You need to create a **personal access token** in Tower. See [here](https://docs.seqera.io/platform-cloud/api/overview#authentication).\n- On the Tower side, you need to add new **Tower Agent** credentials in a workspace. See [here](https://docs.seqera.io/platform-cloud/credentials/agent_credentials).\n- When you create the credentials you'll get an **Agent Connection ID**. You can use that one or just set your own, the important thing is that you use the same connection ID at the workspace credentials and when you run the agent.\n\nRunning the Agent:\n\n- The agent has to be always running to accept incoming requests from Tower. For this we recommend that you run it using a terminal multiplexer like [tmux](https://github.com/tmux/tmux) or [GNU Screen](https://www.gnu.org/software/screen/), so that it keeps running even if you close the SSH session.\n```\nexport TOWER_ACCESS_TOKEN=\u003cYOUR TOKEN\u003e\n./tw-agent \u003cyour agent connection ID\u003e\n```\n\n### Tips\n\n- If you are using the agent with Tower Enterprise (on-prem) you can set the API url using `TOWER_API_ENDPOINT` environment variable or the `--url` option.\n- By default, the Agent uses the folder `~/work` at your home as working directory. You can change it using the `--work-dir` option.\n- The work directory **must** exist before running the agent.\n- You can also change the work directory at Tower when you create a compute environment or pipeline.\n\n### Usage\n```\n\nUsage: tw-agent [OPTIONS] AGENT_CONNECTION_ID\n\nNextflow Tower Agent\n\nParameters:\n*     AGENT_CONNECTION_ID    Agent connection ID to identify this agent.\n\nOptions:\n* -t, --access-token=\u003ctoken\u003e Tower personal access token. If not provided TOWER_ACCESS_TOKEN variable will be used.\n  -u, --url=\u003curl\u003e            Tower server API endpoint URL. If not provided TOWER_API_ENDPOINT variable will be used [default: https://api.cloud.seqera.io].\n  -w, --work-dir=\u003cworkDir\u003e   Default path where the pipeline scratch data is stored. It can be changed when launching a pipeline from Tower [default: ~/work].\n  -h, --help                 Show this help message and exit.\n  -V, --version              Print version information and exit.\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseqeralabs%2Ftower-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseqeralabs%2Ftower-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseqeralabs%2Ftower-agent/lists"}