{"id":18302298,"url":"https://github.com/outscale/osc-tui","last_synced_at":"2026-03-09T05:31:41.453Z","repository":{"id":38191432,"uuid":"241373887","full_name":"outscale/osc-tui","owner":"outscale","description":"TUI client in ncurses for outscale's API.","archived":false,"fork":false,"pushed_at":"2025-03-31T10:02:14.000Z","size":5645,"stargazers_count":14,"open_issues_count":11,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-02-12T08:05:53.832Z","etag":null,"topics":["cloud","maturity-sandbox","outscale","python","tui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outscale.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-18T13:53:23.000Z","updated_at":"2025-03-31T10:01:24.000Z","dependencies_parsed_at":"2023-09-29T12:57:49.784Z","dependency_job_id":"fed86721-c902-4c57-8f74-4c0829a7b372","html_url":"https://github.com/outscale/osc-tui","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/outscale/osc-tui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-tui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-tui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-tui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-tui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outscale","download_url":"https://codeload.github.com/outscale/osc-tui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-tui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cloud","maturity-sandbox","outscale","python","tui"],"created_at":"2024-11-05T15:19:03.369Z","updated_at":"2026-03-09T05:31:41.429Z","avatar_url":"https://github.com/outscale.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# osc-tui\n[![Project Sandbox](https://docs.outscale.com/fr/userguide/_images/Project-Sandbox-yellow.svg)](https://docs.outscale.com/en/userguide/Open-Source-Projects.html)\n\n![](showcase.gif)\n\n# Description (╯°□°)╯︵ ┻━┻\n\nDesigned to be a POC of a Outscale's Cockpit inside the terminal using curses.\u003cbr/\u003eThe officially supported python version is currently 3.\u003cbr/\u003e The code is currently a bit dirty... Maybe big changes are coming!\u003cbr\u003eTo refresh any table, press [F5].\u003cbr\u003eFeel free to suggest oher architectures, libs...\u003cbr/\u003eThe `src/` folder contains the project's sources.\u003cbr/\u003eThe ```tests/``` folder contain some crappy code used to test API calls or any other things...\n\n# Options\n* `--help`: show help\n* `--profile [PROFILE]`: auto-choose the profile, and skip selection screen, just list all profiles if no profile pass as argument\n* `--mode MODE`: jump directly to a mode (like Vms, Images, Security...)\n* `--ascii-logo`: use ascii logo, instead of UTF one.\n\n# Costum Rules\n\nosc-tui support some very simple \"costum rule\" store in `~/.osc/osc-tui-rules.json`\n\nExamples:\n```json\n{\n    \"Val de heim\": {\n\t\"mode\": \"SECURITY-RULES\",\n\t\"ports\": [2456, 2457],\n\t\"protocols\": [\"udp\", \"tcp\"]\n    },\n    \"Mie raft\": {\n\t\"mode\": \"SECURITY-RULES\",\n\t\"ports\": [25565],\n\t\"protocols\": [\"udp\", \"tcp\"]\n    },\n    \"ssh ips\": {\n        \"mode\": \"SECURITY-RULES\",\n        \"ips\": [\"41.41.41.41\", \"43.43.43.43\"],\n        \"ports\": [25565],\n        \"protocols\": [\"udp\", \"tcp\"]\n    }\n\n}\n```\n\nWill add 3 options `Val de heim`, `Mie raft` and `ssh ips` to the SECURITY-RULES menu.\nwhen `Val de heim` or `Mie raft` menu are click, osc-tui will ask for an IP, and allow each protocols for each ports describe in \"ports\" and in \"protocols\"\nwith `ssh ips` is click osc-tui will automatically open the port 25565 for udp and tcp for \"41.41.41.41\" and \"43.43.43.43\" IPs. \n\n# Installation\n\nYou can either use pip on macos/windows/linux, the appimage in release, or the AUR on Arch Linux\n\n# Running the client.\n\n## If installed:\n\n* `osc-tui`\n\n## If not installed (for devs):\n\nMove to the osc-tui folder, then run:\n\n* `python3 -m venv env`\n* `source env/bin/activate`to activate the virtual env.\n* `pip install -e .`\n* then just call `osc-tui`\n\nThen you can deactivate the virtual env:\n\n* `deactivate`\n\n# Packaging the app with pip (BETA, WIP).\n\nbuild and install the package:\u003cbr\u003e\n\n* `python3 setup.py build install`\n\n# Distributions Package\n\n## Arch Linux\n```\nyay -Sy osc-tui-git # you can replace yay by any AUR helper, like paru\n```\n\n# Contributing\n\n## Just a few rules:\u003cbr\u003e\n* Format correctly your code (you can do `autopep8 --in-place --aggressive --aggressive osc_tui/*.py`).\n* Add external dependencies as less as possible.\n\n## Release plan:\nRelease are time base, up to now, we had no release plan, from now on, we will release a new version every 3 month, if there is any commits. \n\nif a major security issue happen, we'll backport the patch and create an update of old version with an updated revision. \n\n## when release a new version:\n* update VERSION in osc_tui/main.py and setup.py\n* update automatic_release_tag in .github/workflows/make_release_bins.yml (note having to do this is a bug and could be simplify)\n* VERSION format is time base, 2 first numbers are for years, 2 next one are for month, and 2 last are for revisions\n* push a tag at the current version, a runner should build the appimage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutscale%2Fosc-tui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutscale%2Fosc-tui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutscale%2Fosc-tui/lists"}