Secman — The Password Manager of your dreams


Secman works on Windows, Linux, and macOS 💻.


Download and install

secman provides convenience scripts to download and install the binary.

Using Shell (macOS and Linux)

curl -fsSL | bash

Using PowerShell (Windows)

iwr -useb | iex

Using Homebrew (macOS and Linux)

brew tap scmn-dev/secman
brew install secman

Using Scoop (Windows)

scoop bucket add secman
scoop install secman

Secman binaries can also be installed manually, by downloading a zip file at

Via Docker

docker run -it smcr/secman-cli

see secman cli docs

docker run -it smcr/secman

see secman container docs

Building from source

If go is not installed, follow steps on the Go website.

  1. clone secman repo
# gh cligh repo clone scmn-dev/secman# gitgit clone after clonecd secman

2. Build and install it

# linux/macOS: by default, it's installs to '/usr/local/bin'; maybe you'll need sudomake
make setup
# windows: it's installs to '%AppData\Local%'& .\script\build.ps1

3. Run secman version to check if it worked.

After installation

To test your installation, run secman version. If this prints the Secman version to the console the installation was successful.

Use secman help to see help text documenting Secman’s flags and usage. Get a detailed guide on the CLI here.

secman -h


To upgrade a previously installed version of Secman, you can run:

secman upgrade/upg This will fetch the latest release from, unzip it, and replace your current executable with it.

Getting started with secman

Create a vault and specify the directory to store passwords in. You will be prompted for your master password:

secman initPlease enter a strong master password:2020/12/23 09:54:31 Created directory to store passwords: ~/.secman

Finally, to learn more you can either read about the commands listed in this README or run:

secman help

The --help argument can be used on any subcommand to describe it and see documentation or examples 😉.

Configuring secman with .secman

The SECDIR environment variable specifies the directory that your vault is in.

it’s store the vault in the default location ~/.secman. All subcommands will respect this environment variable, including init


Listing Passwords

This basic command is used to print out the contents of your password vault. It doesn’t require you to enter your master password.

Authenticating With Github

Initializing Vault

secman init

Init should only be run one time, before running any other command. It is used for generating your master public private keypair.

By default, secman will create your password vault in the .secman directory within your home directory. You can override this location using the SECDIR environment variable.

Inserting a password

insert command

Inserting a password in to your vault is easy. If you wish to group multiple entries together, it can be accomplished by prepending a group name followed by a slash to the pass-name.

Here we are adding ionic to the password store within the accounts group.

Inserting a file

secman insert money/budget.csv budget.csv

Adding a file works almost the same as insert. Instead it has an extra argument. The file that you want to add to your vault is the final argument.

Retrieving a password

secman show accounts/ionicEnter master password:ionic_is_😎_js_platform

Show is used to display a password in standard out.

Rename a password

secman rename accounts/ionic-hubEnter new site name for accounts/ionic-hub: accounts/ionic

If a password is added with the wrong name it can be updated later. Here we rename ionic site after misspelling the group name.

Updating/Editing a password

secman edit meduim/meduim.comEnter new password for medium/

If you want to securely update a password for an already existing site, the edit command is helpful.

Generating a password

secman gen%L4^!s,Rry!}s:U<QwliL{vQKow321-!tr}:232secman gen 8#%Xy1t7E

secman can also create randomly generated passwords. The default length of secman generated passwords is 24 characters. This length can be changed by passing an optional length to the generate subcommand.

Searching the vault

secman find git└──git└──
secman ls meduim└──

find and ls can both be used to search for all sites that contain a particular substring. It's good for printing out groups of sites as well. secman ls is an alias of secman find.

Start Sync Your Passwords

run secman start-sync, it's a shortcut to run secman-sync

Deleting a vault entry

remove command

remove is used for removing sites from the password vault. secman rm is an alias of secman remove.


clean your secman by delete ~/.secman

secman clean


if you’re syncing your ~/.secman, you can fetch if there’re a new passowrd(s)

secman fetch

Show secman version

secman version

Getting Help

secman --help

All subcommands support the --help flag.


Founder of secman-team. full-stack dev. enjoys working on cli apps, websites, automation (CI/CD), and databases.