hidos <options> <subcommand> ...


Subcommand commit

Amend the contents of a document snapshot as a new edition in a document succession.

hidos commit <path_to_contents> <branch_name> <edition_number>

Subcommand create

Create a document succession.

hidos create --keys <ssh_public_key_file> <new_branch_name>

See the guide to Create Signing Key for instructions on creating an SSH public key file.

A new Document Succession Identifier (DSI) will be displayed, and the git branch name can be used for further operations. The branch name is not intrinsic to the document succession and is for convenient identification of successions stored in a git repository.

For testing and trial purposes, you can create an unsigned document succession:

hidos --unsigned create <new_branch_name>

Read about the --unsigned option for caveats.


You might not like a DSI that you create. Maybe you don't want 0 or O characters, or maybe you don't want l or I characters, because some fonts do not visually distinguish them. Or maybe you don't want - or _ characters. Whatever the reason, every second you can regenerate a new DSI by:

  1. Deleting the just-created DSI: git branch -D my_succession
  2. Creating a new DSI: hidos create my_succession

Subcommand dsi

Display the DSI for a specific branch.

hidos dsi <branch_name>

To list all editions along with the SWHID of their binary content, use:

hidos dsi --editions <branch_name>

Subcommand find

Find remote public git repositories based on Document Succession Identifier.

hidos find <base_dsi>

Find remote git repositories and then add them as remotes to the local git repository.

hidos find --add <base_dsi>

A dsi: prefix is optional for the parameter <base_dsi>.

Subcommand list

List all document successions found in a git repository.

hidos list

Both a DSI and branch names will be printed for each document succession.

Hidos options

Option --unsigned

For evaluation and testing purposes, it is easier to create unsigned document successions. To do this, use the --unsigned option immediately after hidos on the subcommand line.

hidos --unsigned <subcommand> ...


For long-term public usage, it is necessary for document successions to be signed. Otherwise, anybody can amend your document succession once it is public. Use the create subcommand with the --keys option to create a signed document succession.

Option --git-dir

If your current directory is in a git repository, then Hidos will use it by default if no --git-dir option is given. Alternatively, you can use the --git-dir option to explicitly point to the git repository.

hidos --git-dir <path_to_repo_dir> <subcommand> ...