{"id":20866169,"url":"https://github.com/willlillis/submod_surfer","last_synced_at":"2026-05-13T23:32:21.964Z","repository":{"id":262161910,"uuid":"886337705","full_name":"WillLillis/submod_surfer","owner":"WillLillis","description":"Fuzzy find to navigate through the submodules of a git project","archived":false,"fork":false,"pushed_at":"2024-12-02T06:20:57.000Z","size":736,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-03T12:19:49.111Z","etag":null,"topics":["command-line-tool","developer-tools","git"],"latest_commit_sha":null,"homepage":"","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/WillLillis.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-11-10T19:01:50.000Z","updated_at":"2025-08-12T08:31:44.000Z","dependencies_parsed_at":"2025-01-19T08:26:01.853Z","dependency_job_id":"4e8a6ff5-7901-48ea-a9a8-bdd461de2b4b","html_url":"https://github.com/WillLillis/submod_surfer","commit_stats":null,"previous_names":["willlillis/submod_surfer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WillLillis/submod_surfer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillLillis%2Fsubmod_surfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillLillis%2Fsubmod_surfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillLillis%2Fsubmod_surfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillLillis%2Fsubmod_surfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WillLillis","download_url":"https://codeload.github.com/WillLillis/submod_surfer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillLillis%2Fsubmod_surfer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33004187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"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":["command-line-tool","developer-tools","git"],"created_at":"2024-11-18T05:56:49.769Z","updated_at":"2026-05-13T23:32:21.940Z","avatar_url":"https://github.com/WillLillis.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/WillLillis/\"\u003e\u003cimg src=\"assets/submod_surfer.png\"        width=\"500px\" alt=\"Submod Surfer logo\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n#\n\nSurf through the submodules of your project with ease!\n\n# Installation\n\n1. Build the `submod_surfer` crate (`cargo build --release`).\n2. `source env.sh`\n\n# Usage\n\nThe `submod_surfer` binary isn't intended to be invoked directly. Rather, it only\nhandles the user's fuzzy finding over the submodules of their git project. Once a\nchoice has been made, the program outputs the path to said submodule and exits.\nThis path is then used by the shell function defined in `env.sh` script to change\ninto the desired directory. In order to use this tool, please *source* the `env.sh`\nscript.\n\n```\n$ submod_surfer --help\nUsage: submod_surfer [OPTIONS]\n\nOptions:\n  -m, --module-path \u003cMODULE_PATH\u003e  Path to the .gitmodules file of interest\n  -f, --fmt \u003cFMT\u003e                  Default: \"%n\", Name: %n or %N, Path: %p, Url: %u, Branch: %b\n  -h, --help                       Print help\n\n$ source /path/to/env.sh\n```\n\nThat's it! It's common to utilize the `module-path` argument alongside a shell alias\nso you can surf even while outside of your project's root directory. For example,\n\n```shell\nalias surf=\"submod_surfer --module-path /absolute/path/to/project --fmt %p\"\n```\n\n## TODO\n- The tool does not work inside git bash's terminal emulator. This needs to be investigated further\n- More cleanup with shell integration (Shells besides zsh and Bash)\n- Add more tests\n- Address user feedback\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilllillis%2Fsubmod_surfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilllillis%2Fsubmod_surfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilllillis%2Fsubmod_surfer/lists"}