{"id":40844863,"url":"https://github.com/hit9/oo","last_synced_at":"2026-01-21T23:11:56.305Z","repository":{"id":29075726,"uuid":"32603818","full_name":"hit9/oo","owner":"hit9","description":"Simple Go Version Manager (still works).","archived":false,"fork":false,"pushed_at":"2024-09-07T07:12:54.000Z","size":554,"stargazers_count":93,"open_issues_count":2,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-07T08:29:23.072Z","etag":null,"topics":["golang","version-manager"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/hit9.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","contributing":null,"funding":null,"license":"LICENSE-MIT","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":"2015-03-20T19:53:35.000Z","updated_at":"2024-09-07T07:12:57.000Z","dependencies_parsed_at":"2024-06-23T00:33:14.274Z","dependency_job_id":null,"html_url":"https://github.com/hit9/oo","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/hit9/oo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hit9%2Foo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hit9%2Foo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hit9%2Foo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hit9%2Foo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hit9","download_url":"https://codeload.github.com/hit9/oo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hit9%2Foo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28646876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["golang","version-manager"],"created_at":"2026-01-21T23:11:55.643Z","updated_at":"2026-01-21T23:11:56.300Z","avatar_url":"https://github.com/hit9.png","language":"Shell","readme":"OO - Go Version Manager\n------------------------\n\nLatest version: 0.1.0\n\n`oo` was heavily inspired by [tj/n](https://github.com/tj/n).\n\n![](screen.gif)\n\nRequirements\n------------\n\nSupported system:\n\n* Mac OSX\n* Linux\n\nRequirements:\n\n* Bash\n* Curl\n\nInstall\n-------\n\n1. Clone this repo.\n\n   ```bash\n   git clone https://github.com/hit9/oo.git $HOME/.oo\n   ```\n\n2. Add this to your bashrc or zshrc:\n\n   ```bash\n   source $HOME/.oo/env\n   ```\n\n   Or this if you are using fish shell:\n\n   ```fish\n   source $HOME/.oo/env.fish\n   ```\n\nNote that you still need to set `GOPATH` manually in your bashrc or zshrc,\noo doesn't take care of that:\n\n```bash\nexport GOPATH=/path/to/your/gopath\nexport PATH=$PATH:$GOPATH/bin\n```\n\nExamples\n---------\n\nGet go1.12.6 installed:\n\n```bash\n$ oo get 1.12.6\n```\n\nThen, the `go1.12.6` is ready:\n\n```bash\n$ go version\ngo version go1.12.6 darwin/amd64\n```\n\nUse go1.12.6 as current `go` (or just `oo 1.12.6`):\n\n```bash\n$ oo use 1.12.6\n=\u003e go1.12.6\n```\n\nRun go from 1.12.6 temporary:\n\n```bash\n$ oo as 1.12.6 version\ngo version go1.12.6 darwin/amd64\n$ oo as 1.12.6 run helloworld.go\nHello world!\n```\n\nList all installed go versions\n\n```bash\n$ oo ls\n   1.12.5\n=\u003e 1.12.6\n```\n\nBuild (or rebuild) go by version:\n\n```bash\n$ oo build 1.12.6\nbuild go1.12.6..\nbuild successfully\n```\n\nGet current go binary path:\n\n```bash\n$ oo bin\n/Users/hit9/github/oo/go/bin/go\n```\n\nRemove a version:\n\n```bash\n$ oo rm 1.12.5                                                                                                                                                                          1 ↵ (go1.4 node@v2.0.0) ~/github/oo/versions/1.5/src\ngo@1.12.5 removed\n```\n\nYou may need to [download a prebuilt golang](#using-prebuilt) on the first run,\nif there's no golang installed, bootstrap won't work.\n\nUsing Prebuilt\n--------------\n\nBy default, oo prefers to bootstrap a new version via an existing installed version:\n\n```bash\n$ oo get 1.12.6\nget https://codeload.github.com/golang/go/tar.gz/go1.12.6..\n######################################################################## 100.0%\nusing go1.12.5 to bootstrap go1.12.6....\nbuild successfully\n=\u003e go1.12.6\n```\n\nBut we are still able to download a prebuilt packages directly from https://golang.org/dl/\nwithout a build waiting:\n\n```bash\n$ oo get 1.10.3 --use-prebuilt\nget https://dl.google.com/go/go1.10.3.darwin-amd64.tar.gz..\n######################################################################## 100.0%\n=\u003e go1.10.3\n```\n\nUsage\n-----\n\n```bash\nUsage: oo [COMMAND]\n\nCommands:\n  oo                         Output current go version\n  oo ls                      Output versions installed\n  oo \u003cversion\u003e               Use go \u003cversion\u003e\n  oo use \u003cversion\u003e           Use go \u003cversion\u003e\n  oo get \u003cversion\u003e           Get go \u003cversion\u003e\n  oo rm \u003cversion\u003e            Remove the given version\n  oo as \u003cversion\u003e            Run go from oo on a specific version\n  oo dir [\u003cversion\u003e]         Show go directory by version\n  oo bin [\u003cversion\u003e]         Show go binary path by version\n  oo build [\u003cversion\u003e]       Build go by version\n  oo env                     Output current go env\n  oo upgrade                 Upgrade oo to latest version\n\nOptions:\n  -v, --version              Output oo's version\n  -h, --help                 Output this help message\n\nEnvironment Variables:\n  OO_MIRROR_PATTERN          Mirror url pattern to download go source tarball\n                             default: https://codeload.github.com/golang/go/tar.gz/go%s\n  OO_BUILD_CMD               Command to build go from source, default: ./make.bash\n  OO_BOOTSTRAP_VERSION       Bootstrap go version to compile the target version,\n                             default: the latest installed version\n\n  PREBUILT_PKG_URL_PATTERN   Url pattern to download pre-built go package\n                             default: https://dl.google.com/go/go%s.%s-amd64.tar.gz\n                             The first parameter here is version, the second is platform.\n                             Use https://dl.google.com/go/go%s.%s-arm64.tar.gz for arm64 platforms (e.g. Mac M1).\nVersion: 0.0.7\n```\n\nCustom Mirror\n-------------\n\nTo use custom mirror url to download golang source:\n\n```bash\n$ export OO_MIRROR_PATTERN='https://storage.googleapis.com/golang/go%s.src.tar.gz'\n$ oo get 1.12.6\nget https://storage.googleapis.com/golang/go1.12.6.src.tar.gz..\n##########                                                                14.4%\n```\n\nTo use custom mirror url to download prebuilt golang package:\n\n```bash\n$ export PREBUILT_PKG_URL_PATTERN=https://dl.google.com/go/go%s.%s-arm64.tar.gz\n$ oo get 1.16.3 --use-prebuilt\nget https://dl.google.com/go/go1.16.3.darwin-arm64.tar.gz..\n########################################################################################################################################################################################################################## 100.0%\n=\u003e go1.16.3\n```\n\nYou can add these environment variables to your bashrc or zshrc etc. for convenience.\n\nSimilar Projects\n----------------\n\n- [tj/n - Node version management](https://github.com/tj/n)\n- [qw3rtman/p - Python Version Management Made Simple](https://github.com/qw3rtman/p)\n\nTroubles\n--------\n\nIf there are any errors during the bootstrap building, it's helpful to build manually to check\nwhat errors occurred:\n\n```\ncd path/to/oo/versions/x.x.x/src\nGOROOT_BOOTSTRAP=path/to/downloaded/go ./all.bash\n```\n\nLicense\n--------\nMIT.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhit9%2Foo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhit9%2Foo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhit9%2Foo/lists"}