{"id":24300634,"url":"https://github.com/allankoder/lethal-terminal","last_synced_at":"2026-03-10T06:31:09.362Z","repository":{"id":271332290,"uuid":"913037976","full_name":"AllanKoder/Lethal-Terminal","owner":"AllanKoder","description":"Optimize your terminal gameplay","archived":false,"fork":false,"pushed_at":"2025-03-23T20:45:09.000Z","size":20676,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T08:23:17.417Z","etag":null,"topics":["lethalcompany"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AllanKoder.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-01-06T22:51:20.000Z","updated_at":"2025-03-23T20:45:12.000Z","dependencies_parsed_at":"2025-01-07T04:34:26.501Z","dependency_job_id":"1e88678e-2792-4a6d-bc73-9dab5e4e1776","html_url":"https://github.com/AllanKoder/Lethal-Terminal","commit_stats":null,"previous_names":["allankoder/lethal-terminal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AllanKoder/Lethal-Terminal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllanKoder%2FLethal-Terminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllanKoder%2FLethal-Terminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllanKoder%2FLethal-Terminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllanKoder%2FLethal-Terminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AllanKoder","download_url":"https://codeload.github.com/AllanKoder/Lethal-Terminal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllanKoder%2FLethal-Terminal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"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":["lethalcompany"],"created_at":"2025-01-16T23:15:33.512Z","updated_at":"2026-03-10T06:31:09.336Z","avatar_url":"https://github.com/AllanKoder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lethal Terminal\n\n'Lethal Terminal' is an advanced terminal tool for automating disarming mines, turret, and easily performing macros with vim motions.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/lethal_terminal.ico\" alt=\"Lethal Terminal icon\" /\u003e\n\u003c/p\u003e\n\n## Download\n\nTo download the executable, download the zip from [Download Link](https://github.com/AllanKoder/Lethal-Terminal/blob/master/download). Keep in mind, this is for **Windows** only.\n\nYou can also use pyinstaller to install the executable yourself.\n\n## Features\n- Automatically typing all the mines and turrets every 5 seconds (configurable)\n- Using Vim-like motions to switch between different states: ex: adding traps, removing, inputting text.\n- Macros for:\n    - switching player\n    - pinging radar\n    - flashing radar\n    - transmitting messages\n    - view monitor\n\n\u003cp align=\"center\" style=\"padding: 20px\"\u003e\n  \u003cimg src=\"./assets/gameplay.gif\" alt=\"Lethal Terminal Gameplay\" /\u003e\n  \u003cbr\u003e\n  \u003ci\u003eGameplay GIF\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\" style=\"padding: 20px\"\u003e\n  \u003cimg src=\"./assets/terminal_gameplay.gif\" alt=\"Lethal Terminal Gameplay\" /\u003e\n  \u003cbr\u003e\n  \u003ci\u003eTerminal UI GIF\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\" style=\"padding: 20px\"\u003e\n  \u003cimg src=\"./assets/terminal_gameplay.png\" alt=\"Lethal Terminal UI Dark Mode\" /\u003e\n  \u003cbr\u003e\n  \u003ci\u003eTerminal UI to display state\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\" style=\"padding: 20px\"\u003e\n  \u003cimg src=\"./assets/light_mode.png\" alt=\"Lethal Terminal UI Light Mode\" /\u003e\n  \u003cbr\u003e\n  \u003ci\u003eLight mode\u003c/i\u003e\n\u003c/p\u003e\n\n\n\n## Guide (How to Use)\n\nGetting used to vim controls is tricky at first, here is a chart of the states and the transition commands between them:\n\n\u003e Note: 'trap' means a mine, a turret, or the spike trap\n\n| **State**            | **Description**                                    | **Key Commands**                      |\n|----------------------|----------------------------------------------------|---------------------------------------|\n| **Gameplay**         | Normal Lethal Company gameplay happens here     | `t + enter` → **Terminal**                |\n| **Any State (except Gameplay)**         |           | `control + c` → Return to **Terminal** state |\n| **Terminal**         | Command input state for various actions.           | `tab + tab` → Gameplay \u003cbr\u003e `a` → Add Trap \u003cbr\u003e `x` → Remove Trap \u003cbr\u003e `i` → Insert Text \u003cbr\u003e `s` → Switch User \u003cbr\u003e `t` → Transmit Text \u003cbr\u003e `v` → View Monitor \u003cbr\u003e `p` → Ping Radar \u003cbr\u003e `f` → Flash Radar \u003cbr\u003e `q + q` → Toggle All Traps |\n| **Add Trap**         | Add a new trap to the trap list.     | Backspace to delete, then enter trap (e.g., a1) |\n| **Remove Trap**      | Remove a trap from the trap list.     | Backspace to delete, then enter trap (e.g., a1) |\n| **Insert Text**      | Insert text into the terminal.        | Any character input followed by `enter` |\n| **Switch User**      | Switch between users.                 | `s` → types 'switch' \u003cbr\u003e `\u003cplayer number from table\u003e` → 'switch \u003cplayer name\u003e' |\n| **Transmit Text**    | Transmitting a message.                  | Type message and press `enter`       |\n| **Ping Radar**       | Flashes a specific radar.                           |`\u003cradar number from table\u003e` → 'ping (radar name)'             |\n| **Flash Radar**      | Flashes a specific radar.                          |`\u003cradar number from table\u003e` → 'flash (radar name)'             |\n| **Toggle Traps**     | Toggles writing all possible traps.           | Triggered by pressing `q + q` from **Terminal**         |\n| **View Monitor**     | types 'view monitor'.                     | Triggered by pressing `v` from **Terminal**             |\n\u003e Please note that once in any state (except gameplay), pressing  **control + c** will return back to **Terminal** state.\n\nIt will take some time to practice and get used to using this tool. I recommend trying it out on a notepad document before using it in game.\n\n### Starting out tutorial\n\n1. Run the executable, `lethal_terminal.exe`\n    - Ensure that there is a `config.json` file in the same directory\n1. Keep the UI open on one half of the screen and the other half is a text editor\n1. Press `t+enter` in the text editor to begin **Terminal** state\n1. Mess around with various states like `a` to add a trap, in the `Add Trap`\n1. After adding a trap, notice that you will start to type the list of traps automatically\n1. Next, go to `Insert Text` state, by pressing `i` in the **Terminal** State\n    - Start typing whatever you want now\n1. Even while traps are being automatically written, you can still write whatever you want\n    - Experiment with the text insertion\n1. To return from insert text back to **Terminal** state, press `control + c`\n1. You got the basics down, now mess around with the other states!\n\n\n### Editting the Configuration\n\nIn the `config.json` file, you can edit various variables around: \n| Parameter                | Description                                           | Default Value                          |\n|--------------------------|-------------------------------------------------------|-------------------------------------|\n| `KEYBOARD_INPUT_DELAY`   | The delay (in seconds) between keyboard inputs.      | 0.020 seconds                       |\n| `TRAP_TIMER_DURATION`    | The duration (in seconds) which automatic trap writing occurs | 5 seconds                          |\n| `LOG_LEVEL`              | The logging level for the application. Only change if you want to debug the application | 20 (WARNING) |\n| `PLAYERS`                | A list of player names for `switching`    | [\"player1\", \"player2\", \"player3\", \"player4\"] |\n| `RADARS`                 | A list of radars for `ping` and `flash`       | [\"radar1\", \"radar2\", \"radar3\", \"radar4\"] |\n\n\n## Development\n❤️ First of all, thank you for considering development with this project \n\n### Getting Started\n\n\u003e Optional, but recommended: Set up a python virtual environment `python -m venv .`\n\nTo get started with development, install the required pip libraries:\n```sh\npip install -r requirements.txt\n```\n\n#### Running the code\nThen, you can running the program as follows:\n```sh\npython lethal_terminal.py\n```\n\n#### Debugging\n\nSince the terminal is being used as the UI with Rich, we use logging to debug the application. In the `config.json`, you can set your logging level to the respective numerical value, ideally `10` for debugging\n\n\u003e https://docs.python.org/3/library/logging.html#logging-levels\n\nThe logs will be located in `lethal_terminal.log`\n\n#### Building\n\nBuilding the executable\n```sh\npyinstaller.exe .\\lethal_terminal.py --icon .\\assets\\lethal_terminal.ico\n```\n\n## Known Issues\n\nThese are the problems which are known, and are tricky to fix, but are being worked on:\n\n- Holding down a macro may result in misprints\n    - Example: Holding `s + s` in **Terminal** state will result in inputs like `siwthc` instead of `switch`\n- While the system is automatically typing traps, there is a small chance that your input will be written when it's not supposed to\n    - Example: system types `a1 a2 a3 a4`, user enters `Text` mode and holds down the key `b`, the terminal output may be `a1 a2 ba3 a4`\n- Sometimes, the first few keys in the macros are not written correctly. This may be a case of the keyboard needing some time to 'warm up' or your `KEYBOARD_INPUT_DELAY` in the `config.json` is too high\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallankoder%2Flethal-terminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallankoder%2Flethal-terminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallankoder%2Flethal-terminal/lists"}