Hey, our early access is open! Simply sign up to get started!
You can sign up to unistry today and begin building out your command line experience of tomorrow. Create a free account to get started, which includes free 100 allocated commands, a week of commands retention & more.
The unistry CLI
is configured in a YAML file (usually referred to as config
, often created in ~/.unistry
), which contains information on how you would like your experience shaped when using the CLI to interact with the platform.
We’ll share some configuration examples soon for different user profiles; keep an eye out! For now, however, you can use unistry init
to use the initiation wizard to shape the configuration to your needs.
By default the CLI will look for a config file in ~/.unistry/config
, however, you can specify which configuration file to load by using the --config
flag at the command line and passing the path to your desired configuration file. The expected value is a string representing the path to the configuration, if the file can be read, and is valid, it will be used.
The file is written in YAML format, defined by the scheme below. Brackets indicate that a parameter is optional. For non-list parameters the value is set to the specified default.
<boolean>
: a boolean that can take the values true
or false
<int>
: any integer matching the regular expression [1-9]+[0-9]*
<filename>
: a valid path relative to current working directory or an absolute path.
<string>
: a string
<secret>
: a string that represents a secret, such as a password
<secret-base64>
: a string that is base64 encoded
config
# The authentication token (authtoken) used to connect to the unistry
# platform.
authtoken: <secret>
# The `certificates` block holds the certificate that will be used for
# client_side actions such as encryption and decryption as well as server
# side decryption.
# Supported certificates are: RSA (Recommended 4096 bits), PEM certificate
certificates:
# The base64 representation of a valid public certificate or the path
# to a file holding a valid public certificate.
- public: <filename> | <secret-base64>
# The base64 representation of a valid private certificate or the path
# to a file holding a valid private certificate. The private certificate
# should be the respective partner of a public certificate used for the
# encryption of commands.
private: <filename> | <secret-base64>
# The `client_side` block configures what actions should be carried out on
# the host
client_side:
# Enables encryption of the commands on the host before sending them to
# the platform. A public certificate must be present or passed; otherwise,
# the command will fail.
encryption_enabled: <boolean> (default `false`)
# Enables decryption of the commands on the host after fetching encrypted
# commands from the platform. The corresponding private certificate of the
# public certificate used to carry out the encryption must be present or
# passed; otherwise, the client-side decryption will fail.
decryption_enabled: <boolean> (default `false`)
# The `tree` block configures interaction with the user's unistry tree.
tree:
# The `viewer` block configures how commands fetched from the user's tree
# will be displayed. This block will be referenced by any command(s)
# fetching commands from the tree.
viewer:
# How commands should be outputted to the user when fetched. Supported
# values are: standard, detail, compact. If a view is not explicitly
# declared, it will default to the 'standard' view.
# CLI flag: --detail, --compact
default_view: <string>
# Whether commands should be automatically decrypted on fetch from the
# user's tree(s). If set to true the referenced private key will be
# used when attempting to decrypt the fetched commands. Private
# certificate must be referenced; otherwise, this will fail if set to
# true
# CLI flag: --decrypt
auto_decrypt: <boolean> (default `false`)
# The keywords to filter all commands' metadata on before returning
# commands from the user's tree. As long as any of the metadata contains
# the keywords listed, they will be returned
# CLI flag: --filter
filter:
- <string>
# The MAX number of commands to be displayed per request to the user's
# tree. Users will be able to specify any number between 10 and 150.
# CLI flag: --size
size: <int> (default `50`)
# The `pusher` block configures how pushing commands to the user's
# tree(s) will handled. This block will be referenced by a push command
# invocations to the tree.
pusher:
# Whether to force that a commit message must be provided with every
# push made to the platform
require_commit_message: <boolean> (default `false`)
# Whether to force that a summary message must be provided with every
# push made to the platform
require_summary_message: <boolean> (default `false`)
# Whether all commands are assumed OK to push, and the user DOES NOT
# have to confirm on push explicitly
# CLI flag: --yes
auto_confirm: <boolean> (default `false`)
# The `importer` block configures how imports from the host machine's
# history should be handled.
importer:
# Whether the output for the import command should be outputted
# without colour
# CLI flag: --no-colour
no_colour: <boolean> (default `false`)
# Whether the piped history should be auto-pushed to the user's
# unistry tree
# CLI flag: --push
auto_push: <boolean> (default `false`)
# Whether any detected duplicated commands should be removed before
# pushing to user's unistry tree
# CLI flag: --no-duplicates
no_duplicates: <boolean> (default `false`)
# [ALPHA] Whether the user wishes to use optimised logic to better
# shape the commands identified whilst importing history (i.e.
# \ multiline commands are made to be one). The is still in the ALPHA
# stage, so feedback is greatly appreciated.
# CLI flag: --optimised-parse
optimised_parse: <boolean> (default `false`)
# The regexes to use to identify commands to ignore. Any matched commands
# will be ignored. As long as any of the command match and regex listed
# below, they will be ignored
# CLI flag: --ignore-regex
ignore_regex:
- <string>
# Whether commands starting with history should be ignored from the
# import.
# CLI flag: --ignore-history-command
ignore_history_commands: <boolean> (default `false`)
# Whether commands starting with unistry should be ignored from the
# import.
# CLI flag: --ignore-unistry-command
ignore_unistry_commands: <boolean> (default `false`)
# The regexes to identify commands to pull out of piped history
# explicitly. Only matched commands will be added to the list to
# import.
# CLI flag: --match-regex
match_regex:
- <string>
Build a secure, unified, and contextual command-line experience across your devices and shells
All rights reserved 2023