A smart Git prompt for your terminal powered by Node.js.
- Bash 3.2.x
- Fish2.5.x
- Zsh 5.3
- Node.js(tested with 0.10.x, 5.7.x, 6.9.x, 10.x).
- Git(tested with 1.9.x, 2.7.x, 2.11.x, 2.14.x, 2.25.x).
Note:There is a good change Nodeprompt will work with other configurations — just give it a shot and let me know!
Since v2.0.0 Nodeprompt requires some special (powerline) symbols to be supported by the terminal font to render properly.
Some fonts support those symbols (glyphs) out–of–the–box, for instance,Fira Codeused in examples below. Many open–source fonts have been patched andcan be downloaded from GitHub.If neither works for you, you can google "[your font name] powerline" because it's likely someone patched your favorite font and posted it on–line.
A note for iTerm 2 users:Make sure the powerline–compatible font is enabled in bothProfiles > Text > Font
andProfiles > Text > Non–ASCII Font
.
-
Call
npm install -g nodeprompt
(oryarn global add nodeprompt
). -
Configure your shell:
Put the following line:
.nodeprompt-enable-bash
in your
~/.bashrc
or~/.bash_profile
file. Re–open the terminal window or source the file, e.g.source ~/.bashrc
.Put the following lines:
.nodeprompt-enable-zsh
in your
~/.zshrc
file. Re–open the terminal window orsource ~/.zshrc
.Create a symbolic link to the
fish_prompt.fish
function file:ln -s /path/to/../nodeprompt/bin/fish_prompt.fish~/.config/fish/functions/fish_prompt.fish
Re–open the terminal window.
-
Enjoy your beautiful prompt!
Nodeprompt is configurable and things like the length of the SHA-1 hash or the number of levels displayed in the path can be adjusted. It is also possible to create a new prompt template from scratch, if that's what you want to do tonight.
Note:Youdon'thave to configure Nodeprompt. By default, it usesconfig.default.js
.
The config file is a plain Node.js module. To configure your prompt, create a~/.nodeprompt/config.user.js
file withmodule.exports
:
module.exports={
option:'value'
};
or simply copythe default configurationand modify it. Refer to thedocumentationto learn more.
Nodeprompt can be used as a utility to obtain the status of the Git repository. Use themodel
property to build your own prompt or logger on top of the library:
constNodeprompt=require('./lib/nodeprompt.js');
constprompt=newNodeprompt();
console.log(prompt.model);
>{
pwd:'/Users/oleq/nodeprompt',
home:'/Users/oleq',
gitDir:'.git',
isGit:true,
hostname:'MBP',
username:'oleq',
path:['~','nodeprompt'],
namerev:'v1.0',
head:'ref: refs/heads/v1.0',
hash:'b22bb89',
mergeHead:'',
isInit:false,
isBisecting:false,
isDetached:false,
isMerging:false,
modified:2,
added:0,
untracked:0,
ahead:2,
behind:0,
branch:'v1.0',
hasDiverged:false
}
Create an issuehere.
Clone the repository to/path/to/nodeprompt
and put./path/to/nodeprompt/bin/nodeprompt-bash
in your~/.bashrc
or~/.bash_profile
file. Source it or restart the terminal.
MIT/X11. See theLICENSEfile to know more.
Kudos toLeonid Volnitskyforgit-prompt,an inspiration to create this project.
- Call
npm run test
to run tests. - Call
npm run coverage
to run tests with code coverage report in./coverage
. - Call
npm run lint
to run ESLint.