{"id":14961448,"url":"https://github.com/yunusey/godot-run","last_synced_at":"2025-10-24T20:31:50.948Z","repository":{"id":251136323,"uuid":"835413475","full_name":"yunusey/godot-run","owner":"yunusey","description":"Easily run and test Godot applications that you see on GitHub on your terminal.","archived":false,"fork":false,"pushed_at":"2024-08-01T02:07:55.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T04:24:37.440Z","etag":null,"topics":["cli","godot","godot-engine","rust","rust-lang"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/godot-run","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yunusey.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":"2024-07-29T19:36:24.000Z","updated_at":"2024-08-01T14:21:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"9daca066-16d5-46a2-9490-956460430260","html_url":"https://github.com/yunusey/godot-run","commit_stats":{"total_commits":9,"total_committers":2,"mean_commits":4.5,"dds":0.2222222222222222,"last_synced_commit":"439d9662aabeb57a5179a7ced9be0b6f9fb3c4dd"},"previous_names":["yunusey/godot-run"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yunusey%2Fgodot-run","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yunusey%2Fgodot-run/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yunusey%2Fgodot-run/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yunusey%2Fgodot-run/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yunusey","download_url":"https://codeload.github.com/yunusey/godot-run/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238035385,"owners_count":19405682,"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":["cli","godot","godot-engine","rust","rust-lang"],"created_at":"2024-09-24T13:25:13.614Z","updated_at":"2025-10-24T20:31:48.020Z","avatar_url":"https://github.com/yunusey.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# godot-run\n\nEasily run and test Godot applications that you see on GitHub on your terminal.\n\n## Installation 📦\n`godot-run` is available on [Crates.io](https://crates.io/crates/godot-run). You can install simply by;\n\n```bash\ncargo install godot-run\n```\n\n## Usage 🛠️\n\n`godot-run` is a simple CLI tool that can be used to run and test Godot applications that you see on GitHub quickly on your terminal. Using it is pretty simple:\n```\nUsage: godot-run [OPTIONS] \u003crepository\u003e\n\nArguments:\n  \u003crepository\u003e  The repository to clone from GitHub (ex: \"github.com/yunusey/gosu\")\n\nOptions:\n      --godot-path \u003cGODOT_PATH\u003e\n          The path to the Godot executable (tries to find it atomatically, if not specified) (ex: --godot-path=\"/home/yunusey/.nix-profile/bin/godot4\") [default: ]\n  -e, --extra-arguments \u003cEXTRA_ARGUMENTS\u003e\n          Extra arguments to pass to the Godot executable (learn more at https://docs.godotengine.org/en/stable/tutorials/editor/command_line_tutorial.html) (ex: --extra-arguments=\"--resolution 1920x1080\") [default: ]\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n\n```\n\n## Repository Cloning 🚚\nSomething nice about `godot-run` is that you can give it a subpath to the repository, and it will work flawlessly (hopefully :D). For instance, you can run `godot-run github.com/godotengine/godot-demo-projects/tree/master/gui/theming_override`. Just make sure that the subpath you give has the `project.godot` file. The format of the repository can be any of the following:\n- https://www.github.com/\u003cowner\\\u003e/\\\u003crepository\\\u003e\n- https://www.github.com/\u003cowner\\\u003e/\\\u003crepository\\\u003e/tree/\\\u003cbranch\\\u003e/\\\u003csubpath1\\\u003e/\\\u003csubpath2\\\u003e/...\n- www.github.com/\u003cowner\\\u003e/\\\u003crepository\\\u003e/tree/\\\u003cbranch\\\u003e/\\\u003csubpath1\\\u003e/\\\u003csubpath2\\\u003e/...\n- \\\u003cowner\\\u003e/\\\u003crepository\\\u003e\n- \\\u003cowner\\\u003e/\\\u003crepository\\\u003e/tree/\\\u003cbranch\\\u003e/\\\u003csubpath1\\\u003e/\\\u003csubpath2\\\u003e/...\n\nYou got the point! Just write it somehow, and hopefully `godot-run` will handle the rest.\n\n\u003e [!warning]\n\u003e Currently, `godot-run` clones the **entire** repository regardless of whether or not you specified a subpath.\n\n\u003e [!warning]\n\u003e I haven't implemented a caching system yet, as I've just made the program for *very* basic use cases; but if you are interested, please let me know by [opening an issue](https://github.com/yunusey/godot-run/issues) or just implement it yourself and don't forget to [open up a PR](https://github.com/yunusey/godot-run/pulls)!\n\n## Godot Executable 🤖\n\nIn order to run the program, we need the Godot executable, which you can give to the program by specifying the `--godot-path` argument. If you don't specify it, the program will try to find the executable by looking at the paths on your `PATH`. However, on the operating systems like Windows, you may have to pass it manually as it may not know where it is exactly at.\n\n## Passing Extra Arguments to Godot 📝\n\nOkay, it is pretty obvious that we are just spawning a subprocess that runs Godot from command-line, which you can find more information about [here](https://docs.godotengine.org/en/stable/tutorials/editor/command_line_tutorial.html). And you may want to, for instance, run the program in fullscreen mode. How do you do so? Pretty simple, actually! You run this:\n```bash\ngodot-run github.com/yunusey/gosu --extra-arguments=\"--fullscreen\"\n```\n\n## Future Plans 📚\n- [ ] Add a caching system\n    - [ ] Add the flag `--save-dir` to save the repositories to a specific directory\n    - [ ] Add the flag `--no-cache` to disable the caching\n    - [ ] Check the last commit in the remote repository, and if it's literally the same, don't clone it again\n    - [ ] Add the flag `--update-cache` to update the cache no matter what the last commit is\n\n- [ ] If possible, just clone the subpath instead of the entire repository.\n\n## References\nI would like to thank all these libraries and software that were used in the development of this project:\n- [Godot Game Engine](https://godotengine.org/) for the most amazing game engine ever made\n- [Clap](https://github.com/clap-rs/clap) for argument parsing\n- [Git2](https://github.com/rust-lang/git2-rs) for libgit2 bindings in Rust\n- [RegEx](https://github.com/rust-lang/regex) for parsing the repository path\n- [Which](https://docs.rs/which/latest/which/) for finding the path to the Godot executable\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyunusey%2Fgodot-run","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyunusey%2Fgodot-run","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyunusey%2Fgodot-run/lists"}