JSPM

  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q62488F
  • License GPL-3.0

Polykey CLI

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (polykey-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Polykey-CLI

    staging:pipeline status master:pipeline status

    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.

    All data is end-to-end encrypted, both in transit and at rest, eliminating the risk associated with third-party storage.

    Polykey provides a command line interface, desktop and mobile GUI, and a web-based control plane for organizational management.

    By treating secrets as tokenized authority, it offers a fresh approach to managing and delegating authority in zero-trust architectures without adding burdensome policy complexity - a pervasive issue in existing zero-trust systems.

    Unlike complex self-hosted secrets management systems that require specialized skills and infrastructure, Polykey is installed and running directly from the end-user device.

    It is built to automatically navigate network complexities like NAT traversal, connecting securely to other nodes without manual configuration.

    Key features:

    • Decentralized Encrypted Storage - No storage of secrets on third parties, secrets are stored on your device and synchronised point-to-point between Polykey nodes.
    • Secure Peer-to-Peer Communication - Polykey bootstraps TLS keys by federating trusted social identities (e.g. GitHub).
    • Secure Computational Workflows - Share static secrets (passwords, keys, tokens and certificates) with people, between teams, and across machine infrastructure. Create dynamic (short-lived) smart-tokens with embedded policy for more sophisticated zero-trust authority verification.
    • With Polykey Enterprise, you can create private networks of Polykey nodes and apply mandatory policy governing node behaviour.

    https://github.com/MatrixAI/Polykey-CLI/assets/640797/7e0b2bd8-9d87-4c9a-8102-750c39579de4

    This repository is the CLI for Polykey.

    The Polykey project is split up into these main repositories:

    Have a bug or a feature-request? Please submit it the issues of the relevant subproject above.

    For tutorials, how-to guides, reference and theory, see the docs.

    Have a question? Join our discussion board.

    Have a security issue you want to let us know? You can contact us on our website.

    Our main website is https://polykey.com

    Installation

    Note that JavaScript libraries are not packaged in Nix. Only JavaScript applications are.

    Building the package:

    nix build

    Nix/NixOS

    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

    Docker

    Install into Docker:

    nix build '.#docker'
    image="$(docker load < result | cut -d' ' -f3)"
    docker run -it "$image"

    Development

    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

    Calling Commands

    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.

    Docs Generation

    npm run docs

    See the docs at: https://matrixai.github.io/Polykey-CLI/

    Publishing

    # npm login
    npm version patch # major/minor/patch
    npm run build
    npm publish --access public
    git push
    git push --tags