Polykey is an open-source, peer-to-peer system that addresses the critical challenge in cybersecurity: the secure sharing and delegation of authority, in the form of secrets like keys, tokens, certificates, and passwords.
It allows users including developers, organizations, and machines—to store these secrets in encrypted vaults on their own devices, and share them directly with trusted parties.
Key features:
Note that JavaScript libraries are not packaged in Nix. Only JavaScript applications are.
Building the package:
nix build
nix build
nix build '.#executable'
nix build '.#docker'
nix build '.#packages.x86_64-linux.executable'
nix build '.#packages.x86_64-windows.executable'
nix build '.#packages.x86_64-darwin.executable'
Install into Nix user profile:
nix profile install github:MatrixAI/Polykey-CLI
The program can be run directly without installing via nix run
nix run . -- agent start
Install into Docker:
nix build '.#docker'
image="$(docker load < result | cut -d' ' -f3)"
docker run -it "$image"
Run nix develop
, and once you're inside, you can use:
# install (or reinstall packages from package.json)
npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run ts-node
# run the tests
npm run test
# lint the source code
npm run lint
# automatically fix the source
npm run lintfix
When calling commands in development, use this style:
npm run polykey -- p1 p2 p3
The --
is necessary to make npm
understand that the parameters are for your own executable, and not parameters to npm
.
npm run docs
See the docs at: https://matrixai.github.io/Polykey-CLI/
# npm login
npm version patch # major/minor/patch
npm run build
npm publish --access public
git push
git push --tags
Polykey-CLI is licensed under the GPLv3, you may read the terms of the license here.