hom-cli
v0.0.15
Published
HöM, the shell management CLI
Downloads
6
Readme
HöM CLI
The hom
CLI gives you tools to manage and organize your personal utility scripts. Create your own namepsaced scripts, aliases, exports, functions, and partials often without needing to open an editor. Utilities you create are organized by type e.g., ~/.hom/NAMESPACE/aliases/YOUR_ALIAS.sh
Usage
$ npm install -g hom-cli
$ hom COMMAND
running command...
$ hom (--version)
hom-cli/0.0.15 darwin-x64 node-v20.10.0
$ hom --help [COMMAND]
USAGE
$ hom COMMAND
...
Commands
hom alias NAME CONTENT [DESCRIPTION]
hom edit [NAME]
hom export NAME CONTENT
hom function NAME
hom help [COMMANDS]
hom install
hom list [NAME]
hom ls [NAME]
hom move NAME
hom mv NAME
hom open
hom partial [NAME]
hom plugins
hom plugins:install PLUGIN...
hom plugins:inspect PLUGIN...
hom plugins:install PLUGIN...
hom plugins:link PLUGIN
hom plugins:uninstall PLUGIN...
hom plugins reset
hom plugins:uninstall PLUGIN...
hom plugins:uninstall PLUGIN...
hom plugins update
hom remove NAME
hom rm NAME
hom run [NAME]
hom script [NAME]
hom set
hom update [CHANNEL]
hom version
hom alias NAME CONTENT [DESCRIPTION]
creates an alias for your shell
USAGE
$ hom alias NAME CONTENT [DESCRIPTION] [-n <value>]
ARGUMENTS
NAME the call name of your alias
CONTENT the content of your alias
DESCRIPTION a description for the alias
FLAGS
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
creates an alias for your shell
EXAMPLES
$ hom alias alias_name "some kind of content"
See code: src/commands/alias.ts
hom edit [NAME]
edits a hom file in your editor
USAGE
$ hom edit [NAME] [-n <value>] [-a | -e | -f | -p | -s]
ARGUMENTS
NAME filename to edit (omit the extension)
FLAGS
-a, --alias
-e, --export
-f, --function
-n, --namespace=<value> namespace
-p, --partial
-s, --script
DESCRIPTION
edits a hom file in your editor
EXAMPLES
$ hom edit -n=mycompany
See code: src/commands/edit.ts
hom export NAME CONTENT
creates an export for your shell
USAGE
$ hom export NAME CONTENT [-n <value>]
ARGUMENTS
NAME the call name of your export (case insensitive)
CONTENT the content of your export
FLAGS
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
creates an export for your shell
EXAMPLES
$ hom export export_name "some kind of content"
See code: src/commands/export.ts
hom function NAME
creates a shell function
USAGE
$ hom function NAME [-n <value>] [-c <value>] [-d <value>]
ARGUMENTS
NAME filename to edit
FLAGS
-c, --content=<value> content of the function. Skips opening the editor when given
-d, --description=<value> A description of what your function does
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
creates a shell function
EXAMPLES
$ hom function function_name -c "echo $something" -d "this is what it do"
See code: src/commands/function.ts
hom help [COMMANDS]
Display help for hom.
USAGE
$ hom help [COMMANDS] [-n]
ARGUMENTS
COMMANDS Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for hom.
See code: @oclif/plugin-help
hom install
installs hom dependencies, sets defaults
USAGE
$ hom install
DESCRIPTION
installs hom dependencies, sets defaults
EXAMPLES
$ hom install
See code: src/commands/install.ts
hom list [NAME]
lists the docs for shell files within hom
USAGE
$ hom list [NAME] [-n <value>]
ARGUMENTS
NAME filename to edit (omit the extension)
FLAGS
-n, --namespace=<value> namespace
DESCRIPTION
lists the docs for shell files within hom
ALIASES
$ hom ls
EXAMPLES
$ hom list -n=mycompany
See code: src/commands/list.ts
hom ls [NAME]
lists the docs for shell files within hom
USAGE
$ hom ls [NAME] [-n <value>]
ARGUMENTS
NAME filename to edit (omit the extension)
FLAGS
-n, --namespace=<value> namespace
DESCRIPTION
lists the docs for shell files within hom
ALIASES
$ hom ls
EXAMPLES
$ hom ls -n=mycompany
hom move NAME
moves a hom file between namespaces
USAGE
$ hom move NAME -d <value> [-n <value>] [-a] [-e] [-f] [-p] [-s]
ARGUMENTS
NAME filename to move (omit the extension)
FLAGS
-a, --alias
-d, --destination=<value> (required) destination namespace
-e, --export
-f, --function
-n, --namespace=<value> [default: user] namespace directory to use
-p, --partial
-s, --script
DESCRIPTION
moves a hom file between namespaces
ALIASES
$ hom mv
EXAMPLES
$ hom move FILE_NAME
See code: src/commands/move.ts
hom mv NAME
moves a hom file between namespaces
USAGE
$ hom mv NAME -d <value> [-n <value>] [-a] [-e] [-f] [-p] [-s]
ARGUMENTS
NAME filename to move (omit the extension)
FLAGS
-a, --alias
-d, --destination=<value> (required) destination namespace
-e, --export
-f, --function
-n, --namespace=<value> [default: user] namespace directory to use
-p, --partial
-s, --script
DESCRIPTION
moves a hom file between namespaces
ALIASES
$ hom mv
EXAMPLES
$ hom mv FILE_NAME
hom open
opens a shell namespace, or folder in your finder
USAGE
$ hom open [-n <value>] [-a | -e | -f | -p | -s]
FLAGS
-a, --alias
-e, --export
-f, --function
-n, --namespace=<value> namespace
-p, --partial
-s, --script
DESCRIPTION
opens a shell namespace, or folder in your finder
EXAMPLES
$ hom open -n=mycompany
See code: src/commands/open.ts
hom partial [NAME]
creates a partial to better organize your shell
USAGE
$ hom partial [NAME] [-n <value>] [-c <value>] [-d <value>]
ARGUMENTS
NAME filename to edit
FLAGS
-c, --content=<value> content of the function. Skips opening the editor when given
-d, --description=<value> A description of what your function does
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
creates a partial to better organize your shell
EXAMPLES
$ hom partial -n=mycompany
See code: src/commands/partial.ts
hom plugins
List installed plugins.
USAGE
$ hom plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ hom plugins
See code: @oclif/plugin-plugins
hom plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ hom plugins add plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-s, --silent Silences yarn output.
-v, --verbose Show verbose yarn output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ hom plugins add
EXAMPLES
$ hom plugins add myplugin
$ hom plugins add https://github.com/someuser/someplugin
$ hom plugins add someuser/someplugin
hom plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ hom plugins inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ hom plugins inspect myplugin
See code: @oclif/plugin-plugins
hom plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ hom plugins install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-s, --silent Silences yarn output.
-v, --verbose Show verbose yarn output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ hom plugins add
EXAMPLES
$ hom plugins install myplugin
$ hom plugins install https://github.com/someuser/someplugin
$ hom plugins install someuser/someplugin
See code: @oclif/plugin-plugins
hom plugins:link PLUGIN
Links a plugin into the CLI for development.
USAGE
$ hom plugins link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ hom plugins link myplugin
See code: @oclif/plugin-plugins
hom plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ hom plugins remove plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ hom plugins unlink
$ hom plugins remove
EXAMPLES
$ hom plugins remove myplugin
hom plugins reset
Remove all user-installed and linked plugins.
USAGE
$ hom plugins reset
See code: @oclif/plugin-plugins
hom plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ hom plugins uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ hom plugins unlink
$ hom plugins remove
EXAMPLES
$ hom plugins uninstall myplugin
See code: @oclif/plugin-plugins
hom plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ hom plugins unlink plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ hom plugins unlink
$ hom plugins remove
EXAMPLES
$ hom plugins unlink myplugin
hom plugins update
Update installed plugins.
USAGE
$ hom plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
See code: @oclif/plugin-plugins
hom remove NAME
removes a shell file
USAGE
$ hom remove NAME [-n <value>] [-a | -e | -f | -p | -s]
ARGUMENTS
NAME filename to move (omit the extension)
FLAGS
-a, --alias
-e, --export
-f, --function
-n, --namespace=<value> [default: user] namespace directory to use
-p, --partial
-s, --script
DESCRIPTION
removes a shell file
ALIASES
$ hom rm
EXAMPLES
$ hom remove FILE_NAME
See code: src/commands/remove.ts
hom rm NAME
removes a shell file
USAGE
$ hom rm NAME [-n <value>] [-a | -e | -f | -p | -s]
ARGUMENTS
NAME filename to move (omit the extension)
FLAGS
-a, --alias
-e, --export
-f, --function
-n, --namespace=<value> [default: user] namespace directory to use
-p, --partial
-s, --script
DESCRIPTION
removes a shell file
ALIASES
$ hom rm
EXAMPLES
$ hom rm FILE_NAME
hom run [NAME]
runs one of your saved scripts
USAGE
$ hom run [NAME] [-n <value>]
ARGUMENTS
NAME script to run
FLAGS
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
runs one of your saved scripts
EXAMPLES
$ hom run -n=mycompany
See code: src/commands/run.ts
hom script [NAME]
creates a shell script that will NOT be run until called
USAGE
$ hom script [NAME] [-n <value>] [-c <value>] [-d <value>]
ARGUMENTS
NAME filename to edit
FLAGS
-c, --content=<value> content of the script. Skips opening the editor when given
-d, --description=<value> A description of what your script does
-n, --namespace=<value> [default: user] namespace directory to use
DESCRIPTION
creates a shell script that will NOT be run until called
EXAMPLES
$ hom script -n=mycompany
See code: src/commands/script.ts
hom set
sets default hom configurations
USAGE
$ hom set [-r <value>] [-n <value>] [-s <value>]
FLAGS
-n, --namespace=<value> default namespace
-r, --repo=<value> a git repository to use as a template
-s, --shell=<value> shell type
DESCRIPTION
sets default hom configurations
EXAMPLES
$ hom set -n=mycompany
See code: src/commands/set.ts
hom update [CHANNEL]
update the hom CLI
USAGE
$ hom update [CHANNEL] [-a] [--force] [-i | -v <value>]
FLAGS
-a, --available See available versions.
-i, --interactive Interactively select version to install. This is ignored if a channel is provided.
-v, --version=<value> Install a specific version.
--force Force a re-download of the requested version.
DESCRIPTION
update the hom CLI
EXAMPLES
Update to the stable channel:
$ hom update stable
Update to a specific version:
$ hom update --version 1.0.0
Interactively select version:
$ hom update --interactive
See available versions:
$ hom update --available
See code: @oclif/plugin-update
hom version
USAGE
$ hom version [--json] [--verbose]
FLAGS
--verbose Show additional information about the CLI.
GLOBAL FLAGS
--json Format output as json.
FLAG DESCRIPTIONS
--verbose Show additional information about the CLI.
Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.
See code: @oclif/plugin-version