{"id":27012877,"url":"https://github.com/antvirf/stui","last_synced_at":"2025-04-04T12:18:10.591Z","repository":{"id":285578932,"uuid":"957500804","full_name":"Antvirf/stui","owner":"Antvirf","description":"Manage Slurm nodes and jobs with a Terminal User Interface ","archived":false,"fork":false,"pushed_at":"2025-04-01T14:33:13.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T15:25:21.803Z","etag":null,"topics":["go","gui","hpc","slurm","tui","tview"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Antvirf.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":"2025-03-30T14:30:06.000Z","updated_at":"2025-04-01T14:33:16.000Z","dependencies_parsed_at":"2025-04-01T15:25:33.616Z","dependency_job_id":"a4378dfa-1dc8-4f19-8232-38dea0d78052","html_url":"https://github.com/Antvirf/stui","commit_stats":null,"previous_names":["antvirf/stui"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Antvirf%2Fstui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Antvirf%2Fstui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Antvirf%2Fstui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Antvirf%2Fstui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Antvirf","download_url":"https://codeload.github.com/Antvirf/stui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174458,"owners_count":20896078,"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":["go","gui","hpc","slurm","tui","tview"],"created_at":"2025-04-04T12:18:09.998Z","updated_at":"2025-04-04T12:18:10.584Z","avatar_url":"https://github.com/Antvirf.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `stui` - Slurm terminal user interface\n\n*Like [k9s](https://k9scli.io/), but for Slurm*\n\nTerminal User Interface (TUI) for viewing and managing Slurm nodes and jobs.\n\n## Features\n\n- List and view nodes and jobs, quickly filter list with regexp\n- View individual node details (`scontrol show node` equivalent)\n- View individual job details (`scontrol show job` equivalent)\n- Show `sdiag` output\n\n## Installation\n\nWith [`go 1.22`](https://go.dev/doc/install) or newer installed;\n\n```bash\ngo install github.com/antvirf/stui@latest\nsudo mv ~/go/bin/stui /usr/bin\n```\n\n## Usage\n\n1. Ensure your Slurm binaries are working and you can talk to your cluster, e.g. `sdiag` shows a valid output.\n\n2. Run `stui` / `go run main.go` in the repo. See `-help` for arguments.\n\n    \u003c!-- REPLACE_START --\u003e\n    ```\n    Usage of ./stui:\n      -copied-lines-separator string\n         string to use when separating copied lines in clipboard (default \"\\n\")\n      -copy-first-column-only\n         if true, only copy the first column of the table to clipboard when copying (default true)\n      -debug-multiplier int\n         multiplier for nodes and jobs, helpful when debugging and developing (default 1)\n      -job-view-columns string\n         comma-separated list of scontrol fields to show in job view (default \"JobId,UserId,Partition,JobName,JobState,RunTime,NodeList\")\n      -node-view-columns string\n         comma-separated list of scontrol fields to show in node view (default \"NodeName,Partitions,State,CPUTot,RealMemory,CPULoad,Reason,Sockets,CoresPerSocket,ThreadsPerCore,Gres\")\n      -refresh-interval duration\n         interval in seconds when to refetch data (default 15ns)\n      -request-timeout duration\n         timeout setting for fetching data (default 4ns)\n      -search-debounce-interval duration\n         interval in milliseconds to wait before searching (default 50ns)\n      -slurm-binaries-path string\n         path where Slurm binaries like 'sinfo' and 'squeue' can be found (default \"/usr/local/bin\")\n      -slurm-conf-location string\n         path to slurm.conf for the desired cluster, sets 'SLURM_CONF' environment variable (default \"/etc/slurm/slurm.conf\")\n      -slurm-restd-address string\n         URI for Slurm REST API if available, including protocol and port\n    ```\n    \u003c!-- REPLACE_END --\u003e\n\n## Developing `stui`\n\nThe below helpers configure a locally running cluster with `888` virtual nodes across several partitions to help work on `stui` with realistic data.\n\n```bash\nmake build-cluster      # build Slurm with required options\nmake config-cluster     # copy mock config to /etc/slurm/\nmake run-cluster        # start `slurmctld` and `slurmd`\nmake launch-jobs        # launch few hundred sleep jobs\nmake stop-cluster       # stop cluster\n\nmake setup              # install pre-commit and download Go deps\n```\n\n## To-do\n\n- Selector/limit by partition across both job and node views\n- Control commands: Set node state and reason for all selected nodes\n- Control commands: Cancel jobs / Send to top of queue for all selected jobs\n- Improve handling of sdiag/other calls if no scheduler available - by default they hang for a long time\n- Ability to use `slurmrestd` / REST API instead of Slurm binaries\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantvirf%2Fstui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantvirf%2Fstui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantvirf%2Fstui/lists"}