A CLI for managing starred Git repositories
Both GitHub and GitLab allow you to "star" repositories. "Starring" lets you keep track of repositories you find interesting, but none of the services provide ways to search or tag your repositories so you can easily find them.
Limo lets you manage your starred repositories from the command line. You can do things like tag them, search them, or list them by language. Think of Limo as the CLI version of Astral (also worth looking into).
If you have a working Go installation, type:
$ go get -u github.com/hoop33/limo
You can also download a pre-built binary for your platform and copy it to a location on your path.
Limo supports both GitHub and GitLab.
You can read the full usage documentation at https://www.gitbook.com/book/hoop33/limo/details.
Here's how to get started:
First, create API keys for your GitHub and GitLab accounts (with repo access) on their respective sites, and then type:
$ limo login
Enter your GitHub API token:
$ limo login --service gitlab
Enter your GitLab API token:
$ limo update
Updating . . . /
Created: 10; Updated: 46; Errors: 0
$ limo update --service gitlab
Updating . . . /
Created: 5; Updated: 23; Errors: 0
$ limo list languages
...
Go
...
VimL
$ limo list stars
...
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
jaxbot/semantic-highlight.vim ★ :209 VimL https://github.com/jaxbot/semantic-highlight.vim.git
...
$ limo list stars -l viml
...
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
jaxbot/semantic-highlight.vim ★ :209 VimL https://github.com/jaxbot/semantic-highlight.vim.git
...
$ limo tag jaxbot vim github
Star 'jaxbot' ambiguous:
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
jaxbot/semantic-highlight.vim ★ :209 VimL https://github.com/jaxbot/semantic-highlight.vim.git
Narrow your search
$ limo tag github-issues vim github
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
Added tag 'vim'
Added tag 'github'
$ limo show github-issues
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
github, vim
Github issue lookup in Vim
Home page: https://jaxbot.me/articles/github-issues-vim-plugin-5-7-2014
Starred on Fri Feb 21 16:02:49 UTC 2014
$ limo list tags
cli
git
vim
web
$ limo list stars -t vim
vim/vim ★ :5267 C https://github.com/vim/vim.git
tybenz/vimdeck ★ :953 Ruby https://github.com/tybenz/vimdeck.git
jaxbot/github-issues.vim ★ :347 VimL https://github.com/jaxbot/github-issues.vim.git
vicoapp/vico ★ :666 Objective-C https://github.com/vicoapp/vico.git
$ limo search text editor
(0.708069) limetext/lime ★ :12588 https://github.com/limetext/lime.git
(0.617632) zyedidia/micro ★ :2030 Go https://github.com/zyedidia/micro.git
(0.614035) driusan/de ★ :116 Go https://github.com/driusan/de.git
(0.611212) martanne/vis ★ :2171 C https://github.com/martanne/vis.git
(0.608427) Cocoanetics/DTRichTextEditor ★ :259 Objective-C https://github.com/Cocoanetics/DTRichTextEditor.git
(0.608427) atom/atom ★ :29489 CoffeeScript https://github.com/atom/atom.git
(0.608427) skx/kilua ★ :80 C++ https://github.com/skx/kilua.git
(0.600297) antirez/kilo ★ :2672 C https://github.com/antirez/kilo.git
(0.597658) xmementoit/vim-ide ★ :150 VimL https://github.com/xmementoit/vim-ide.git
(0.592483) edwardloveall/atom-replacement-icon ★ :133 Shell https://github.com/edwardloveall/atom-replacement-icon.git
You can read the full usage documentation at https://www.gitbook.com/book/hoop33/limo/details.
- Why the name "limo"?
- If you know anything about Hollywood, you know that limos carry . . . stars.
- Where is this information stored?
- The configuration is stored in
~/.config/limo
. Inside that directory, you'll find:limo.yaml
: Configuration informationlimo.db
: The SQLite database that stores all your stars and tagslimo.idx
: The Bleve search index
- The configuration is stored in
- How do I change the "updating" spinner?
- Limo uses https://github.com/briandowns/spinner for its "updating" spinner. You can override which spinner is used, what color to make it, and the spin interval in your
limo.yaml
file, like this:outputs: color: spinnerIndex: 10 spinnerInterval: 300 spinnerColor: blue
- Limo uses https://github.com/briandowns/spinner for its "updating" spinner. You can override which spinner is used, what color to make it, and the spin interval in your
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See CODE_OF_CONDUCT file.
Contributions are welcome! Please open pull requests with code that passes all the checks. See Building for more information.
You must have a working Go development environment to contribute code. limo
uses vendoring, so requires Go 1.6+ (or Go 1.5 with GO15VENDOREXPERIMENT=1
, though I haven't tested that).
The included makefile performs various checks on the code. To get started, run:
$ make deps
This will install the necessary dependencies. You should have to do this only once.
Then, you can run:
$ make
To run the code checks and tests. To build and install, run:
$ make install
Problem: Adding a star results in output like this:
PUT https://api.github.com/user/starred/hoop33/limo: 404 Not Found []
Solution: Change your token for the service to have repo access.
Limo uses the following open source libraries -- thank you!
Also, thanks to contributors!
- Tyson Warner : List stars by tag and language
Apologies if I've inadvertently omitted any library or any contributor.
Copyright © 2016 Rob Warner
Licensed under the MIT License