Skip to content

Manage your passwords while living inside your terminal

Notifications You must be signed in to change notification settings

ReticentFacade/secretKeyper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SecretKeyper

Project Logo

Description:

SecretKeyper is an open source secure password store designed to keep your sensitive information safe while providing the convenience of easy access. With integrated 2FA, your stored data is doubly protected against unauthorized access.

Upcoming features shall assist developers in keeping .env secure. I'm thinking something like this?

Click here to read why you should consider centralizing your .env management

Application:

  • API & Web server
  • CLI: For those who prefer commands over conversations 😼

Tech used

API and Storage:

  • NodeJS
  • ExpressJS
  • MongoDB

CLI:

  • Golang
  • GnuPG

Frontend:

  • ReactJS
  • TailwindCSS

Features

  • Secure Storage --> Safely manage passwords, cards, and notes.
  • 2FA Support --> Enhanced protection with time-based one-time passwords (TOTP)
  • CLI Access --> Conveniently control everything via terminal.
  • Local Storage --> Keep data securely stored on your device.
  • Organizational Tools --> Customize entries and categories.

API & Web server:

CLI:

  • https://asciinema.org/a/605769
  • Initializes git repository
  • Files are encrypted using GPG
  • Generates secure passwords
  • Automatically copies extracted passwords/text to your clipboard for 90 seconds
➜  ~ keyper list

  Available commands ---->
  - help
  - list
  - keyper
  - init
  - insert
  - extract
  - find
  - remove
  - update
  - generate

Current State

  • The API & CLI are ready to be used individually.
  • However, their integration is under development. Some important features (for developers) are yet to be implemented.

Requirements:

  • GnuPG: Since Keyper-CLI uses GnuPG (or GPG) file protection under the hood, it's necessary that you install it.
  • Git

‍ Getting Started

Build the App

$ go build -o bin/keyper main.go

or

$ task build

Run the App

$ ./bin/keyper

or,

$ task run

Test the App

$ ./bin/keyper
For those of you who type more than talk, here's a Golang CLI-tool to keep your secrets safe!

Usage:
  keyper [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  extract     Extracts your password from the website's folder
  find        Searches for all passwords given a string
  generate    Generate a random password for a website
  help        Help about any command
  init        Initializes a .secretKeyper directory in your system's home directory
  insert      Creates a new directory to store passwords for that website
  keyper      Prints the tree structure of .secretKeyper
  list        Lists All commands
  remove      Remove a website directory or its password file directly, using flags
  update      Update a website's password

Flags:
  -h, --help     help for keyper
  -t, --toggle   Help message for toggle

Use "keyper [command] --help" for more information about a command.

Add bin to Your PATH

To make it more convenient to run the 'keyper' binary from any location in your terminal, add the bin directory to your system's PATH, this way:

For Zsh & Bash:

  1. Edit your .zshrc/.bashrc file using a text editor of your choice. You can use the nano editor, for example:

    nano ~/.zshrc

    or,

    nano ~/.bashrc
  2. Add this at the end:

    export PATH=$PATH:/path/to/your/keyper/repo/bin
    
  • Replace /path/to/your/keyper/repo with the actual path to your 'keyper' repository.
  1. Reload your zsh/bash after saving:
source ~/.zshrc

or,

source ~/.bashrc
  1. Click for a walk-through

✅ TODO:

  • Authentication
  • Strength
  • Encryption
  • Storage
  • Decryption
  • 2FA
  • CLI
    • keyper
    • keyper list
    • keyper init
    • keyper insert <website>
    • keyper extract <website>
      • Fix clipboard-thing
    • keyper remove <website>
    • keyper update <website>
    • keyper generate <website>
    • keyper find <website>
    • Change keyper init to keyper init <GPG_KEY_ID>
    • keyper git init
    • Add progress-bar
    • keyper edit <website> [Opens the file in a text-editor (nvim, vi - any!) to add meta data to your decrypted password.txt.gpg]
    • keyper show <website> [Lists available file + provides tab-completion]
    • keyper grep "search-using-metaData"
    • Add features for .env - saving, sharing, importing variables into your projects
  • Link CLI with API
  • Extension

🤝 Contributing

This project is open to contribution. Your interest in contributing to the project is appreciated. There are many ways to get involved and help improve SecretKeyper.

Ways to Contribute

  • Bug Reports: If you find a bug or issue, please open a GitHub issue with a detailed description.

  • Feature Requests: Have an idea for a new feature or improvement? Feel free to suggest it by opening an issue.

  • Code Contributions: If you're a developer, you can fork the repository, make your changes, and create a pull request.

  • Documentation: Improving documentation is always helpful. If you find areas where the documentation can be enhanced, please submit a pull request.

About

Manage your passwords while living inside your terminal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published