pure.go 🐐 [](https://github.com/edouard-lopez/pure.go/actions/workflows/ci.yml)

December 10, 2025 · View on GitHub

Exploring Golang by re-implementing pure prompt.

:information_source: This is a really basic and naive implementation.

Preview

preview pure.go

Installation

  1. Download the release binary for your OS/Arch

  2. Allow execution

    chmod u+x /path/to/pure
    
  3. Try to execute manually

    $ /path/to/pure -version --last-command-status $status
    # should print something like:
    ~/projects/contributions/pure.go 🐐go1.20.3
    0
    
  4. Edit your Fish, Zsh or Bash prompt (see below).

Configuring Shell Prompt

Fish

Edit $__fish_config_dir/functions/fish_prompt.fish with:

function fish_prompt
    /path/to/pure -version --last-command-status $status
end

Zsh

PROMPT=$(/path/to/pure -version --last-command-status $status)

Bash

export PS1='$(/path/to/pure -version --last-command-status $status)'

Development

Usage

 go run ./cmd/cli.go -version --last-command-status $status

or with the built binary

 make build
 ./pure --last-command-status $status
# or
 make demo

Install

 make install

Test

 make test

Build

Create a pure binary in the project's root directory.

 make build
 ./pure --last-command-status $status

Todo

  • create a pure package
    • add pure package to go.mod
    • add pure package to go.sum
  • print prompt with pure package
  • test pure package output (with testify)
  • create a CLI (with clîr)
  • add current working directory to prompt
  • add go version to prompt when go.sum exists
  • configure Goreleaser
  • add color to output
  • Add Git segments
    • add Git branch segment

Ports