Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


GO GitHub project manager

PkgGoDev Go Report Card Coverage Status Release


gogh is forked from ghq.

$ gogh list

gogh provides a way to organize remote repository clones, like go get does. When you clone a remote repository by gogh get, gogh makes a directory under a specific root directory (by default ~/go/src) using the remote repository URL's host and path. And creating new one by gogh new, gogh make both of a local project and a remote repository.

$ gogh get
# Runs `git clone ~/go/src/`

You can also list projects (local repositories) (gogh list).


For Golang developers

$ go get


$ brew tap kyoh86/tap
$ brew update
$ brew install kyoh86/tap/gogh


$ mkdir -p gogh_build && \
  cd gogh_build && \
  curl -L --silent | tar -xvz
$ makepkg -i

Available commands

Show projects

Command Description
gogh list List local projects
gogh repos List remote repositories

Manipulate projects

Command Description
gogh create Create a new project with a remote repository
gogh delete Delete a repository with a remote repository
gogh fork Fork a repository
gogh clone Clone a repository to local


Command Description
gogh roots Manage roots
gogh servers Manage servers
gogh bundle Manage bundle
gogh help Help about any command

Use gogh [command] --help for more information about a command. Or see the manual in usage/


gogh manages projects under the roots directories.

Seealso: Directory structures

You can change the roots with roots add <path> or roots remove <path> and see all of them by roots list. gogh uses the first one as the default one, create, fork or clone will put a local project under it. If you want to change the default, use roots set-default <path>.

Default: ~/Projects.


gogh manages respositories in some servers that pairs of a user and a host name. To login in new server or logout, you should use servers login. gogh uses the first server as the default one. When you specify a repository with amonguous user or host, it will be interpolated with a default server.

I.E. when servers are:

    • user: kyoh86
    • user: foobar

Amonguas repository names will be interpolated:

Amonguals name Interpolated name


Manual: usage/

Directory structures

Local projects are placed under gogh.roots with named `host/user/repo.

|-- google/
|   +-- go-github/
|-- kyoh86/
|   +-- gogh/
+-- alecthomas/
  +-- kingpin/


MIT License

This software is released under the MIT License, see LICENSE. And this software is based on ghq.