Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

The HackMD/CodiMD Command Line Tool

License

NotificationsYou must be signed in to change notification settings

hackmdio/hackmd-cli

Repository files navigation

oclifVersionDownloads/weekLicense

v2 notice

hackmd-cli v2 now only supports the official HackMD instance(hackmd.io) and HackMD EE instances after version1.38.1. CodiMD is not supported anymore. If you want to use the CLI tools with CodiMD, please check out thev1.x README and follow the instruction there.

Migrating from v1.x

  1. If you are using the CLI with CodiMD, please follow thev1.x README
  2. If you are using the CLI with HackMD(hackmd.io) or HackMD EE(Enterprise Edition) instances:
    • You're using the JSON file-based config: Remove~/.hackmd/config.json and start over again. You can start withconfiguration section.
    • You're using environment variable based config:HMD_CLI_SERVER_URL has been replaced withHMD_API_ENDPOINT_URL. AndHMD_API_ENDPOINT_URL may vary depending on your instance. Please check contact your instance admin to get the correctHMD_API_ENDPOINT_URL. For generating access token, please check theconfiguration section. You'll need to set theHMD_API_ACCESS_TOKEN environment variable.

Usage

$npm install -g @hackmd/hackmd-cli$hackmd-cli COMMANDrunning command...$hackmd-cli (--version|-v)@hackmd/hackmd-cli/2.3.2 darwin-arm64 node-v18.14.2$hackmd-cli --help [COMMAND]USAGE  $ hackmd-cli COMMAND...

Configuration

Set access token

Access token should be set before usinghackmd-cli. It can be created by landinghackmd.io ->Setting ->API -> Create API token. Copy the token and set it as config variable. For more details, please follow the tutorial:How to issue an API token.

Example:

Set the access token bylogin command. By doing so, the access token will be saved in~/.hackmd/config.json.

$hackmd-cli loginEnter your access token: My_ACCESS_TOKEN

Or you don't want to keep the credentials in one file, you can set it through environment variable:

export HMD_API_ACCESS_TOKEN=MY_ACCESS_TOKEN

Or you can write the configuration file manually. Edit~/.hackmd/config.json with the following content:

{"accessToken":"MY_ACCESS_TOKEN"}

Specify HackMD API endpoint manually (optional)

hackmd-cli operates on the official HackMD API endpoint (https://api.hackmd.io/v1) by default. If you want to usehackmd-cli with a customHackMD EE instance, you will need to configure the API endpoint by either environment variable or JSON configuration manually.

Example:

Set environment variable in your shell profile:

export HMD_API_ENDPOINT_URL=https://my.hackmd-ee.api.endpoint

Or in JSON file (~/.hackmd/config.json):

{"hackmdAPIEndpointURL":"https://my.hackmd-ee.api.endpoint"}

Configuration Reference

All available configurations are listed in the table below.

Config keyEnvironment VariableData TypeExample ValueDescription
hackmdAPIEndpointURLHMD_API_ENDPOINT_URLstringhttps://api.hackmd.io/v1HackMD EE API endpoint URL
accessTokenHMD_API_ACCESS_TOKENstringUFHR12H7FSEF3ADFY3N9YNRN2E49VGR212NBFToken to access HackMD APIs

Commands

hackmd-cli autocomplete [SHELL]

display autocomplete installation instructions

USAGE  $ hackmd-cli autocomplete [SHELL] [-r]ARGUMENTS  SHELL  shell typeFLAGS  -r, --refresh-cache  Refresh cache (ignores displaying instructions)DESCRIPTION  display autocomplete installation instructionsEXAMPLES  $ hackmd-cli autocomplete  $ hackmd-cli autocomplete bash  $ hackmd-cli autocomplete fish  $ hackmd-cli autocomplete zsh  $ hackmd-cli autocomplete --refresh-cache

See code:@hackmd/oclif-plugin-autocomplete

hackmd-cli export

Export note content

USAGE  $ hackmd-cli export [-h] [--noteId <value>]FLAGS  -h, --help        Show CLI help.  --noteId=<value>  HackMD note idDESCRIPTION  Export note contentEXAMPLES  $ hackmd-cli export --noteId=kNFWV5E-Qz-QP7u6XnNvyQ  # A note to be exported

See code:src/commands/export.ts

hackmd-cli help [COMMANDS]

Display help for hackmd-cli.

USAGE  $ hackmd-cli 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 hackmd-cli.

See code:@oclif/plugin-help

hackmd-cli history

List user browse history

USAGE  $ hackmd-cli history [-h] [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output    csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -h, --help         Show CLI help.  -x, --extended     show extra columns  --columns=<value>  only show provided columns (comma-separated)  --csv              output is csv format [alias: --output=csv]  --filter=<value>   filter property by partial string matching, ex: name=foo  --no-header        hide table header from output  --no-truncate      do not truncate output to fit screen  --output=<option>  output in a more machine friendly format                     <options: csv|json|yaml>  --sort=<value>     property to sort by (prepend '-' for descending)DESCRIPTION  List user browse historyEXAMPLES  $ hackmd-cli history  ID                     Title                            User Path               Team Path  ────────────────────── ──────────────────────────────── ────────────────────── ────────  raUuSTetT5uQbqQfLnz9lA CLI test note                    gvfz2UB5THiKABQJQnLs6Q null  BnC6gN0_TfStV2KKmPPXeg Welcome to your team's workspace null                   CLI-test

See code:src/commands/history.ts

hackmd-cli login

Login to HackMD server from CLI

USAGE  $ hackmd-cli login [-h]FLAGS  -h, --help  Show CLI help.DESCRIPTION  Login to HackMD server from CLIEXAMPLES  $ hackmd-cli login  Enter your access token: MY_ACCESS_TOKEN  Login successfully

See code:src/commands/login.ts

hackmd-cli logout

Login to HackMD server from CLI

USAGE  $ hackmd-cli logout [-h]FLAGS  -h, --help  Show CLI help.DESCRIPTION  Login to HackMD server from CLIEXAMPLES  $ hackmd-cli logout  You've logged out successfully

See code:src/commands/logout.ts

hackmd-cli notes

HackMD notes commands

USAGE  $ hackmd-cli notes [-h] [--noteId <value>] [--columns <value> | -x] [--sort <value>] [--filter <value>]    [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -h, --help         Show CLI help.  -x, --extended     show extra columns  --columns=<value>  only show provided columns (comma-separated)  --csv              output is csv format [alias: --output=csv]  --filter=<value>   filter property by partial string matching, ex: name=foo  --no-header        hide table header from output  --no-truncate      do not truncate output to fit screen  --noteId=<value>   HackMD note id  --output=<option>  output in a more machine friendly format                     <options: csv|json|yaml>  --sort=<value>     property to sort by (prepend '-' for descending)DESCRIPTION  HackMD notes commandsEXAMPLES  $ hackmd-cli notes  ID                     Title                            User Path               Team Path  ────────────────────── ──────────────────────────────── ────────────────────── ────────  raUuSTetT5uQbqQfLnz9lA CLI test note                    gvfz2UB5THiKABQJQnLs6Q null

See code:src/commands/notes/index.ts

hackmd-cli notes create

Create a note

USAGE  $ hackmd-cli notes create [-h] [--title <value>] [--content <value>] [--readPermission <value>]    [--writePermission <value>] [--commentPermission <value>] [-e] [--columns <value> | -x] [--sort <value>] [--filter    <value>] [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -e, --editor                 create note with $EDITOR  -h, --help                   Show CLI help.  -x, --extended               show extra columns  --columns=<value>            only show provided columns (comma-separated)  --commentPermission=<value>  set comment permission: disabled, forbidden, owners, signed_in_users, everyone  --content=<value>            new note content  --csv                        output is csv format [alias: --output=csv]  --filter=<value>             filter property by partial string matching, ex: name=foo  --no-header                  hide table header from output  --no-truncate                do not truncate output to fit screen  --output=<option>            output in a more machine friendly format                               <options: csv|json|yaml>  --readPermission=<value>     set note permission: owner, signed_in, guest  --sort=<value>               property to sort by (prepend '-' for descending)  --title=<value>              new note title  --writePermission=<value>    set note permission: owner, signed_in, guestDESCRIPTION  Create a noteEXAMPLES  notes create --content='# A new note' --readPermission=owner --writePermission=owner --commentPermission=disabled  ID                     Title                            User Path               Team Path  ────────────────────── ──────────────────────────────── ──────────────────────  ────────  raUuSTetT5uQbqQfLnz9lA A new note                       gvfz2UB5THiKABQJQnLs6Q  null  Or you can pipe content via Unix pipeline:  cat README.md | hackmd-cli notes create

hackmd-cli notes delete

Delete a note

USAGE  $ hackmd-cli notes delete [-h] [--noteId <value>]FLAGS  -h, --help        Show CLI help.  --noteId=<value>  HackMD note idDESCRIPTION  Delete a noteEXAMPLES  $ hackmd-cli notes delete --noteId=WNkLM6gkS0Cg2cQ8rv7bYA

hackmd-cli notes update

Update note content

USAGE  $ hackmd-cli notes update [-h] [--noteId <value>] [--content <value>]FLAGS  -h, --help         Show CLI help.  --content=<value>  new note content  --noteId=<value>   HackMD note idDESCRIPTION  Update note contentEXAMPLES  $ hackmd-cli notes update --noteId=WNkLM6gkS0Cg2cQ8rv7bYA --content='# A new title'

hackmd-cli team-notes

HackMD team-notes commands

USAGE  $ hackmd-cli team-notes [-h] [--teamPath <value>] [--columns <value> | -x] [--sort <value>] [--filter <value>]    [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -h, --help          Show CLI help.  -x, --extended      show extra columns  --columns=<value>   only show provided columns (comma-separated)  --csv               output is csv format [alias: --output=csv]  --filter=<value>    filter property by partial string matching, ex: name=foo  --no-header         hide table header from output  --no-truncate       do not truncate output to fit screen  --output=<option>   output in a more machine friendly format                      <options: csv|json|yaml>  --sort=<value>      property to sort by (prepend '-' for descending)  --teamPath=<value>  HackMD team pathDESCRIPTION  HackMD team-notes commandsEXAMPLES  $ hackmd-cli team-notes --teamPath=CLI-test  ID                     Title                            User path Team path  ────────────────────── ──────────────────────────────── ──────── ────────  WNkLM6gkS0Cg2cQ8rv7bYA a team note                      null     CLI-test  BnC6gN0_TfStV2KKmPPXeg Welcome to your team's workspace null     CLI-test

See code:src/commands/team-notes/index.ts

hackmd-cli team-notes create

Create a team note

USAGE  $ hackmd-cli team-notes create [-h] [--teamPath <value>] [--title <value>] [--content <value>] [--readPermission    <value>] [--writePermission <value>] [--commentPermission <value>] [-e] [--columns <value> | -x] [--sort <value>]    [--filter <value>] [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -e, --editor                 create note with $EDITOR  -h, --help                   Show CLI help.  -x, --extended               show extra columns  --columns=<value>            only show provided columns (comma-separated)  --commentPermission=<value>  set comment permission: disabled, forbidden, owners, signed_in_users, everyone  --content=<value>            new note content  --csv                        output is csv format [alias: --output=csv]  --filter=<value>             filter property by partial string matching, ex: name=foo  --no-header                  hide table header from output  --no-truncate                do not truncate output to fit screen  --output=<option>            output in a more machine friendly format                               <options: csv|json|yaml>  --readPermission=<value>     set note permission: owner, signed_in, guest  --sort=<value>               property to sort by (prepend '-' for descending)  --teamPath=<value>           HackMD team path  --title=<value>              new note title  --writePermission=<value>    set note permission: owner, signed_in, guestDESCRIPTION  Create a team noteEXAMPLES  team-notes:create --teamPath=CLI-test --content='# A new note' --readPermission=owner --writePermission=owner --commentPermission=disabled  ID                     Title                            User Path              Team Path  ────────────────────── ──────────────────────────────── ────────────────────── ────────  raUuSTetT5uQbqQfLnz9lA A new note                       gvfz2UB5THiKABQJQnLs6Q null       Or you can pipe content via Unix pipeline:  cat README.md | hackmd-cli notes create --teamPath=CLI-test

hackmd-cli team-notes delete

Delete a team note

USAGE  $ hackmd-cli team-notes delete [-h] [--teamPath <value>] [--noteId <value>]FLAGS  -h, --help          Show CLI help.  --noteId=<value>    HackMD note id  --teamPath=<value>  HackMD team pathDESCRIPTION  Delete a team noteEXAMPLES  $ hackmd-cli team-notes delete --teamPath=CLI-test --noteId=WNkLM6gkS0Cg2cQ8rv7bYA

hackmd-cli team-notes update

Update team note content

USAGE  $ hackmd-cli team-notes update [-h] [--teamPath <value>] [--noteId <value>] [--content <value>]FLAGS  -h, --help          Show CLI help.  --content=<value>   new note content  --noteId=<value>    HackMD note id  --teamPath=<value>  HackMD team pathDESCRIPTION  Update team note contentEXAMPLES  $ hackmd-cli team-notes update --teamPath=CLI-test --noteId=WNkLM6gkS0Cg2cQ8rv7bYA --content='# A new title'

hackmd-cli teams

List teams

USAGE  $ hackmd-cli teams [-h] [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output    csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -h, --help         Show CLI help.  -x, --extended     show extra columns  --columns=<value>  only show provided columns (comma-separated)  --csv              output is csv format [alias: --output=csv]  --filter=<value>   filter property by partial string matching, ex: name=foo  --no-header        hide table header from output  --no-truncate      do not truncate output to fit screen  --output=<option>  output in a more machine friendly format                     <options: csv|json|yaml>  --sort=<value>     property to sort by (prepend '-' for descending)DESCRIPTION  List teamsEXAMPLES  $ hackmd-cli teams  ID                                   Name          Path     Owner ID  ──────────────────────────────────── ───────────── ──────── ────────────────────────────────────  f76308a6-d77a-41f6-86d0-8ada426a6fb4 CLI test team CLI-test 82f7f3d9-4079-4c78-8a00-14094272ece9

See code:src/commands/teams.ts

hackmd-cli version

USAGE  $ hackmd-cli 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

hackmd-cli whoami

Show current user information

USAGE  $ hackmd-cli whoami [-h] [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output    csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]FLAGS  -h, --help         Show CLI help.  -x, --extended     show extra columns  --columns=<value>  only show provided columns (comma-separated)  --csv              output is csv format [alias: --output=csv]  --filter=<value>   filter property by partial string matching, ex: name=foo  --no-header        hide table header from output  --no-truncate      do not truncate output to fit screen  --output=<option>  output in a more machine friendly format                     <options: csv|json|yaml>  --sort=<value>     property to sort by (prepend '-' for descending)DESCRIPTION  Show current user informationEXAMPLES  $ hackmd-cli whoami  ID                                   Name           Email User path  ──────────────────────────────────── ────────────── ───── ──────────────────────  82f7f3d9-4079-4c78-8a00-14094272ece9 Ming-Hsiu Tsai null  gvfz2UB5THiKABQJQnLs6Q

See code:src/commands/whoami.ts

License

MIT


[8]ページ先頭

©2009-2025 Movatter.jp