Simple, seamless, lightweight time tracking for Git

Overview
GTM Logo
Git Time Metric

Seamless time tracking for all your Git projects

$ gtm report -last-month
$ gtm report -last-month -format summary
$ gtm report -last-month -format timeline-hours

GTM is automatic, seamless and lightweight. There is no need to remember to start and stop timers. It runs on occasion to capture activity triggered by your editor. The time metrics are stored locally with the git repository as Git notes and can be pushed to the remote repository.

Plugins

Simply install a plugin for your favorite editor and the GTM command line utility to start tracking your time now.

Getting Started

Install the latest GTM release

Mac OS X

The simplest way to install is to use Homebrew

brew tap git-time-metric/gtm
brew install gtm

Windows

  • Download and run the Windows installer from here

Linux

The simplest way to install is to use Linuxbrew

brew tap git-time-metric/gtm
brew install gtm

Manually install for Linux, OSX or Windows

  • Download and install the executable from here

Install a plugin for your editor

Initialize a project for time tracking

$ cd /my/project/dir
$ gtm init

Git Time Metric initialized for /my/project/dir

     post-commit: gtm commit --yes
  alias.fetchgtm: fetch origin refs/notes/gtm-data:refs/notes/gtm-data
   alias.pushgtm: push origin refs/notes/gtm-data
notes.rewriteref: refs/notes/gtm-data
        terminal: true
      .gitignore: /.gtm/
            tags: tag1, tag2 

Edit some files in your project

Check your progress with gtm status.

$ gtm status

       20m 40s  53% [m] plugin/gtm.vim
       18m  5s  46% [r] Terminal
           15s   1% [m] .gitignore
       39m  0s          gtm-vim-plugin 

Commit your work

When you are ready, commit your work like you usually do. GTM will automatically save the time spent associated with your commit. To check the time of the last commit type gtm report.

$ gtm report

7129f00 Remove post processing of status
Fri Sep 09 20:45:03 2016 -0500 gtm-vim-plugin Michael Schenk

       20m 40s  53% [m] plugin/gtm.vim
       18m  5s  46% [r] Terminal
           15s   1% [m] .gitignore
       39m  0s          gtm-vim-plugin 

Optionally save time in the remote Git repository

GTM provides git aliases to make this easy. It defaults to origin for the remote repository.

Time data can be saved to the remote repository by pushing.

$ git pushgtm 

Time data can be retrieved from the remote repository by fetching.

$ git fetchgtm 

Getting Help

For help from the command line type gtm --help and gtm <subcommand> --help.

For additional help please consult the Wiki.

Contributing

Build Status Build status Coverage Status Go Report Card

If you find a bug or have an idea for a new feature please feel free to file new issues and submits PRs. In particular if there isn't a plugin for your favorite editor, go ahead and create one!

For more detail on how to write plugins, check out the Wiki.

Support

To report a bug, please submit an issue on the GitHub Page

Consult the Wiki for more information.

Issues
  • Bug: `gtm status` empty result.

    Bug: `gtm status` empty result.

    Thanks for the worderful tool. Here is the issue I'm facing,

    • I've used pathogen to install the gtm vim plugin,
    • And have initialized gtm on the my repo.
    • But gtm status is showing empty result after code edits/modifications.
    opened by hackintoshrao 22
  • fetch question

    fetch question

    I feel like I should know the answer to this, but the notes stuff is ๐Ÿ†• to me...

    I set it up on one computer, but didn't push it. Worked on stuff on a second computer and did push that. I go back to the first computer and try git fetchgtm and get the following...

    ! [rejected]        refs/notes/gtm-data -> refs/notes/gtm-data  (non-fast-forward)
    

    Thanks.

    question 
    opened by darrinholst 12
  • gtm init returns with a

    gtm init returns with a "No File needs Merging"

    Hi,

    running on a Mac OS 10.10, I found gtm and thought it seemed pretty cool and wanted to give it a shot. But after installing and running an gtm init, I always get "No file need merging".

    Running a git config --get-regexp alias, I could see that gtm wasn't an alias of git merge. I have found this stack post http://stackoverflow.com/questions/7854611/git-mergetool-reports-no-files-need-merging, but that didn't solved the issue either.

    Also gtm report throws a Git Time Metric is not initialized

    Am I missing something ?

    opened by akougblenou 9
  • Question about tracking time

    Question about tracking time

    Hi there - this is a very cool piece of software and I would like to start using it but I have some problems understanding exactly how it works. I use Vim and installed the plugin. I opened a file and read it for two minutes, then exited vim. However, when I call gtm status repeatedly after that the time it shows me keeps growing even though I'm not reading that file anymore. Is it expected behaviour?

    Thanks a lot!

    UPDATE: seems like time stops being added after a couple of minutes...

    enhancement 
    opened by nicknikolov 9
  • Tracking time on submodules

    Tracking time on submodules

    When trying to initialize a git subrepo (created using git submodule add) with gtm init I get the error:

    Unable to intialize Git Time Metric, Git repository not found in /Users/luigi/work/.git/modules/.git
    

    Whenever I gtm init a cloned repo, it works fine.

    Is there any workaround to track time individually on each submodule? Is this feature implemented? Are there any plan to implement this in the future? Maybe I could contribute with the implementation. gtm seems exactly what I was looking for, no distraction, seamless, IDE integration. I believe I would enjoy using is myself.


    OS: macOS High Sierra 10.13.5 gtm: v1.3.3 git: version 2.15.1 (Apple Git-101)

    enhancement 
    opened by acuarica 8
  • installer for windows not working

    installer for windows not working

    I downloaded the file available on the download link for windows, unzipped via winrar, and tried to run.

    When run, gtm.exe only flashes and then closes.

    did I do something wrong?

    opened by john-md86 7
  • Release 1.3.2 libssl.so.1.0.0 not found

    Release 1.3.2 libssl.so.1.0.0 not found

    When I extract the gtm-tar 1.3.2-linux, and execute the ./gtm, I get:

    ./gtm: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
    

    Note: This doesn't happen with older releases like 1.2.11-linux

    opened by guenhter 6
  • Running into gitlab-ci for Autoreporting

    Running into gitlab-ci for Autoreporting

    I am playing around with the project into my Gitlab Pipeline for automating the reports and maybe exporting them. I created a docker image with gtm for running the commands into the pipeline https://hub.docker.com/r/nthingsm/gtm/ and in my .gitlab-ci.yml I have the next stage:

    time_report:
        stage: time_report
        image: nthingsm/gtm
        script:
            - gtm init
            - git fetchgtm
            - gtm report -this-month -format timeline-hours
    

    But the gtm report command doesn't output anything. Am I missing something?

    opened by nthings 5
  • [SourceTree] post-commit, gtm command not found

    [SourceTree] post-commit, gtm command not found

    Hey,

    I'm using SourceTree as GUI for my git repos but oddly gtm is not working. The terminal log of ST gave me this after a closer look:

    .git/hooks/post-commit: line 7: gtm: command not found

    Here the $PATH when running the post-commit file from ST:

    /Applications/SourceTree.app/Contents/Resources/git_local/libexec/git-core:/Applications/SourceTree.app/Contents/Resources/bin:/Applications/SourceTree.app/Contents/Resources/git_local/bin:/Applications/SourceTree.app/Contents/Resources/git_local/gitflow:/Applications/SourceTree.app/Contents/Resources/git_local/git-lfs:/usr/bin:/bin:/usr/sbin:/sbin

    I use ZSH and it's working fine (terminal plug-in installed).

    Any idea?

    bug 
    opened by gaelfoppolo 5
  • Time tracked seems to get erased when rebasing

    Time tracked seems to get erased when rebasing

    I'm new to using GTM, so I apologize if the solution to this problem is obvious or if this just isn't in the capabilities of GTM.

    If I use GTM to track time on a handful of local commits on master and then try to rebase with origin, replaying my local commits on top of origin (rather than merging upstream changes), all of the GTM data that is tracked along side those local commits disappears.

    Is there a way to avoid this or to recover that data or implement this? I'm thinking some type of post-rewrite hook may help here, so I'll start looking at how I might use that, but if anyone working on this project has any insight here, I know I'd appreciate it.

    opened by mbeasley 5
  • Stop tracking

    Stop tracking

    Hi It would be nice to have option to only track time spent editting files ex. if i open some files in Intellij IDEA or in vim, and start editting, and then I will close it, go for a run before commiting, gtm still tracks time spent. You could have new event file in .gtm folder, and with "O /path/to/file" of "C /path/to/file", where O stands for opened, and C for closed. I could help you with that if you wish, cuz' I think it is really great tool.

    opened by ghost 5
  • feat(freebsd): FreeBSD 13.0-RELEASE compat

    feat(freebsd): FreeBSD 13.0-RELEASE compat

    Fix Makefile to reference correct version of git2go for FreeBSD 13.0-RELEASE Fix scm/git.go imports to reference correct version of git2go for FreeBSD 13.0-RELEASE Fix scm/git.go:301 git2go TreeWalkCallback type changed return type 'int' -> 'error' Fix util/test.go imports to reference correct version of git2go for FreeBSD 13.0-RELEASE

    • Tags: 13.0-RELEASE FreeBSD
    opened by aescaler-a0d 1
  • FreeBSD 13.0-RELEASE compatibility

    FreeBSD 13.0-RELEASE compatibility

    working on FreeBSD compatibility.

    Currently testing using 13.0-RELEASE-p6.

    uname -r
    13.0-RELEASE-p6
    

    First issue was git2go.

    13.0-RELEASE-p6 uses libgit2 version 1.3.0.

    pkg-config --modversion libgit2
    1.3.0
    

    This corresponds to git2go V33 per the documentation.

    I updated the imports to "github.com/libgit2/git2go/v33", updated the Makefile to use GIT2GO_VERSION = v33.0.7, and added SHELL = /usr/local/bin/bash to the top of the Makefile.

    Then, I encountered an issue with scm/git.go on line 301. git2go v27 -> v33 changed type TreeWalkCallback : func(string, *TreeEntry) int -> func(string, *TreeEntry) error

    Since the anonymous func just returns 0 anyways, I just changed the return type to error and the return to nil and called it a day.

    go vet ran successfully :+1:

      300     err := childTree.Walk(
    ~ 301       func(s string, entry *git.TreeEntry) error {
      302         switch entry.Filemode {
      303         case git.FilemodeTree:
      304           // directory where file entry is located
      305           path = filepath.ToSlash(entry.Name)
      306         default:
      307           files = append(files, filepath.Join(path, entry.Name))
      308           fileCnt++
      309         }
    ~ 310         return nil
      311       })
    
    @@ -298,7 +298,7 @@ func DiffParentCommit(childCommit *git.Commit) (CommitStats, error) {
                    files := []string{}
    
                    err := childTree.Walk(
    -                       func(s string, entry *git.TreeEntry) int {
    +                       func(s string, entry *git.TreeEntry) error {
                                    switch entry.Filemode {
                                    case git.FilemodeTree:
                                            // directory where file entry is located
    @@ -307,7 +307,7 @@ func DiffParentCommit(childCommit *git.Commit) (CommitStats, error) {
                                            files = append(files, filepath.Join(path, entry.Name))
                                            fileCnt++
                                    }
    -                               return 0
    +                               return nil
                            })
    

    Now it builds, but not with --tags 'static'.

    gmake build                                                                            Mon Jan 31 04:35:36 2022
    go build --tags 'static' -ldflags "-X main.Version=0.0.0-dev-019de99" -o bin/gtm
    # pkg-config --cflags --static -- /usr/home/aescaler/code/dev-tools/gtm/vendor/github.com/libgit2/git2go/v33/static-build/install/lib/pkgconfig/libgit2.pc
    Package vendor/github.com/libgit2/git2go/v33/static-build/install/lib/pkgconfig/libgit2.pc was not found in the pkg-config search path.
    Perhaps you should add the directory containing `/usr/home/aescaler/code/dev-tools/gtm/vendor/github.com/libgit2/git2go/v33/static-build/install/lib/pkgconfig/libgit2.pc.pc'
    to the PKG_CONFIG_PATH environment variable
    Package '/usr/home/aescaler/code/dev-tools/gtm/vendor/github.com/libgit2/git2go/v33/static-build/install/lib/pkgconfig/libgit2.pc', required by 'virtual:world', not found
    pkg-config: exit status 1
    gmake: *** [Makefile:13: build] Error 2
    

    Looks like an issue with some libgit2 stuff so I checked out the git2go readme and it has info on static builds. I changed the Makefile, which now only needs to use gmake install-static after cding in the git2go target. It also wasn't pointing to the right directories, so I changed GIT2GO_PATH to vendor/github.com/libgit2/git2go.

    With a few more edits to the Makefile paths and the git commands, I was able to get it to compile statically linked.

    gmake build                                              
    go build --tags 'static' -ldflags "-X main.Version=0.0.0-dev-019de99" -o bin/gtm
    

    I'll have a PR submitted, probably tomorrow as it is already late for me.

    opened by aescaler-a0d 2
  • Nullpointer in IntelliJ

    Nullpointer in IntelliJ

    ##Versions

    • gtm is installed from brew with v1.3.5.
    • GTM plugin for IntelliJ with v1.0.13
    • IntelliJ with 2021.2.3 (Ultimate)

    Reproduction

    Gtm is initialised gtm init Start intelliJ observe the plugin throwing as follows

    Plugin 'io.edgeg.gtm.intellij' failed to initialize and will be disabled. Please restart IntelliJ IDEA.
    
    java.lang.NullPointerException
        at io.edgeg.gtm.intellij.GTMStatusWidget.<init>(GTMStatusWidget.java:30)
        at io.edgeg.gtm.intellij.GTMStatusWidget.create(GTMStatusWidget.java:43)
        at io.edgeg.gtm.intellij.GTMProject.initComponent(GTMProject.java:24)
        at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:44)
        at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
        at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
        at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:60)
        at com.intellij.serviceContainer.ComponentManagerImpl.createComponents(ComponentManagerImpl.kt:407)
        at com.intellij.openapi.project.impl.ProjectExImpl.init(ProjectExImpl.kt:183)
        at com.intellij.openapi.project.impl.ProjectManagerImpl.initProject(ProjectManagerImpl.java:178)
        at com.intellij.openapi.project.impl.ProjectManagerExImpl.prepareProject(ProjectManagerExImpl.kt:270)
        at com.intellij.openapi.project.impl.ProjectManagerExImpl.access$prepareProject(ProjectManagerExImpl.kt:57)
        at com.intellij.openapi.project.impl.ProjectManagerExImpl$doOpenAsync$1.invoke(ProjectManagerExImpl.kt:119)
        at com.intellij.openapi.project.impl.ProjectManagerExImpl$doOpenAsync$1.invoke(ProjectManagerExImpl.kt:57)
        at com.intellij.openapi.project.impl.ProjectUiFrameAllocator$run$progressRunner$1.apply(ProjectFrameAllocator.kt:94)
        at com.intellij.openapi.project.impl.ProjectUiFrameAllocator$run$progressRunner$1.apply(ProjectFrameAllocator.kt:71)
        at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:243)
        at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:183)
        at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
        at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
        at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:170)
        at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:243)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
    
    opened by Hu1buerger 0
  • GTM Listing Seconds as Minutes

    GTM Listing Seconds as Minutes

    When I open a file with Vim, leave it a few seconds, and then close the file and call gtm status on the repo, it reports that several minutes have passed and the seconds counter never changes, it always displays 0

    Operating System: Windows 10 x64 GTM Version: v1.3.5 Using Vim with SpaceVim Using latest GTM-Vim-Plugin

    opened by SarahGreyWolf 0
  • Startup Abort in Pycharm 2019.3

    Startup Abort in Pycharm 2019.3

    I get an error every time I try to start PyCharm 2019.3 with the GTM plugin enabled. I have to disable it in order to actually open PyCharm successfully.

    com.intellij.ide.plugins.StartupAbortedException: Fatal error initializing plugin io.edgeg.gtm.intellij
    	at com.intellij.ide.plugins.PluginManager.handleComponentError(PluginManager.java:55)
    	at com.intellij.serviceContainer.PlatformComponentManagerImpl.handleInitComponentError(PlatformComponentManagerImpl.kt:247)
    	at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:50)
    	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
    	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
    	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
    	at com.intellij.serviceContainer.PlatformComponentManagerImpl.createComponents(PlatformComponentManagerImpl.kt:177)
    	at com.intellij.openapi.project.impl.ProjectImpl.init(ProjectImpl.java:295)
    	at com.intellij.openapi.project.impl.ProjectManagerImpl.initProject(ProjectManagerImpl.java:315)
    	at com.intellij.openapi.project.impl.ProjectManagerImpl.convertAndLoadProject(ProjectManagerImpl.java:624)
    	at com.intellij.platform.PlatformProjectOpenProcessor.prepareProject(PlatformProjectOpenProcessor.java:315)
    	at com.intellij.platform.PlatformProjectOpenProcessor.lambda$openExistingProject$0(PlatformProjectOpenProcessor.java:241)
    	at com.intellij.platform.ProjectUiFrameAllocator$run$1$1.run(ProjectFrameAllocator.kt:77)
    	at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:247)
    	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:888)
    	at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:441)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
    	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
    	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$4(ApplicationImpl.java:441)
    	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:221)
    	at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:209)
    	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:238)
    	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.lang.Thread.run(Thread.java:834)
    Caused by: com.intellij.diagnostic.PluginException:  [Plugin: io.edgeg.gtm.intellij]
    	... 30 more
    Caused by: java.lang.NullPointerException
    	at io.edgeg.gtm.intellij.GTMStatusWidget.<init>(GTMStatusWidget.java:30)
    	at io.edgeg.gtm.intellij.GTMStatusWidget.create(GTMStatusWidget.java:43)
    	at io.edgeg.gtm.intellij.GTMProject.initComponent(GTMProject.java:24)
    	at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:42)
    	... 27 more```
    opened by voxelv 1
Releases(v1.4.0-beta)
Owner
Git Time Metric
Simple, seamless, lightweight time tracking for Git
Git Time Metric
Command line tool for time tracking in a human-readable file format.

klog klog is a plain-text file format and a command line tool for time tracking. ?? Documentation โ€“ Learn how to use klog ?? Download โ€“ Get the latest

Jan Heuermann 346 May 7, 2022
Hakuna Go: an unofficial CLI for the time-tracking tool Hakuna

Hakuna Go Hakuna Go is an unofficial CLI for the time-tracking tool Hakuna. Inst

Henning Dahlheim 3 Apr 25, 2022
Expense_tracker - A simple application that will help in tracking income and expense

Expense Tracker Is meant to be a simple application that will help in tracking i

Prabandham Srinidhi 0 Jan 6, 2022
A CLI to replace your git commit command, so your git message can partially follow the Conventional Changelog ecosystem

COMMIT CLI A CLI to replace your git commit command, so your git message can partially follow the Conventional Changelog ecosystem. And yes, it is bui

Hisam Fahri 1 Feb 9, 2022
git-glimpse is a command-line tool that is aimed at generating a git prompt like the one from zsh-vcs-prompt.

Git GoGlimpse git-glimpse is a command-line tool that is aimed at generating a git prompt like the one from zsh-vcs-prompt. The particularity of this

Corentin de Boisset 0 Jan 27, 2022
Terminal stock ticker with live updates and position tracking

Ticker Terminal stock watcher and stock position tracker Features Live stock price quotes Track value of your stock positions Support for multiple cos

Ani Channarasappa 4.2k May 19, 2022
A Target Tracking , NoteTaking , CheckLists and Data Management GUI App for Bug Hunter's and Pentesters.

Screenshots Features โ€ข Installation โ€ข Usage โ€ข Features โ€ข Notes โ€ข Sandman A Target Tracking , NoteTaking , CheckLists and Data Management GUI App for B

Tarun Koyalwar 7 Apr 26, 2022
A dead simple cli utility to help you manage your git stash

A dead simple cli utility to help you manage your git stash.

Fadi Khadra 3 Jan 10, 2022
A dead simple CLI tool that prints the next semantic version based on the last tag of your git repository

nextver A dead simple CLI tool that prints the next semantic version based on the last tag of your git repository. Install go install github.com/junk1

Tom 3 Jan 27, 2022
A simple single-file executable to pull a git-ssh repository and serve the web app found to a self-contained browser window

go-git-serve A simple single-file executable to pull a git-ssh repository (using go-git library) and serve the web app found to a self-contained brows

Justin Searle 0 Jan 19, 2022
a lightweight and simple cli package

โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–ˆ โ–„โ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–€ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–„ โ–ˆโ–ˆโ–ˆ

seo.do 12 Oct 14, 2021
Simple, lightweight, and easy to use gopacket wrapper cli

gniffer Simple, lightweight, and easy to use gopacket wrapper cli Explore the docs ยป View Demo ยท Report Bug ยท Request Feature Table of Contents About

StrixEye 4 Dec 25, 2021
A simple command line time description parser

Zeit Zeit is an extremely simple command line application to read a natural language time description and output it as a timestamp. The main usecase f

ElKowar 6 Aug 21, 2021
a simple golang program that shows the time in asci art.

Curtime a simple golang program that shows the time in asci art. Installing Other For other distros you can grab a executable file from the releases.

null 1 Oct 8, 2021
commit/branch/workdir explorer for git

gitin gitin is a commit/branch/status explorer for git gitin is a minimalist tool that lets you explore a git repository from the command line. You ca

Ibrahim Serdar Acikgoz 1.8k May 14, 2022
Modern ls command with vscode like File Icon and Git Integrations. Written in Golang

logo-ls modern ls command with beautiful Icons and Git Integrations . Written in Golang Command and Arguments supported are listed in HELP.md Table of

Yash Handa 865 May 10, 2022
A tiny git forge written in Go

Smithy smithy (n) A blacksmith's shop; a forge. Smithy is a web frontend for git repositories. It's implemented entirely in Golang, compiles to a sing

Honza Pokorny 203 May 1, 2022
๐Ÿ’Š A git query language

Gitql Gitql is a Git query language. In a repository path... See more here Reading the code โš ๏ธ This project was created in 2014 as my first go project

Claudson Oliveira 5.9k May 17, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Gruntwork 571 May 12, 2022