id = "kubo" name = "Kubo (IPFS)" homepage = "https://github.com/ipfs/kubo" description = "The reference IPFS implementation and node daemon." executables = ["ipfs"] [dotfiles] # Kubo documents $IPFS_PATH/config (default ~/.ipfs/config) as its JSON node # configuration. It embeds Identity.PrivKey, so the whole file is secret. # https://github.com/ipfs/kubo/blob/master/docs/config.md # The private-network pre-shared key is also documented at ~/.ipfs/swarm.key. # https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md paths = [] secret = ["~/.ipfs/config", "~/.ipfs/swarm.key"] side_effect = false [commands] format = 1 label = "Kubo (IPFS)" description = "Add files or directories to IPFS with ipfs add. Experimental chunking, inline and filestore options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["add"] label = "Add files" description = "Add one or more paths to the local node and pin them. Experimental options are left out." [[commands.subcommand.source]] id = "cli" kind = "help" url = "https://docs.ipfs.tech/reference/kubo/cli/" revision = "kubo 0.43.1" evidence = """ ipfs add ... - Add a file or directory to IPFS. ... - The path to a file to be added to IPFS. -r, --recursive bool - Add directory paths recursively. -H, --hidden bool - Include files that are hidden. Only takes -q, --quiet bool - Write minimal output. -Q, --quieter bool - Write only final hash. -n, --only-hash bool - Only chunk and hash - do not write to -w, --wrap-with-directory bool - Wrap files with a directory object. --pin bool - Pin locally to protect added files from --cid-version int - CID version (0 or 1). CIDv1 automatically --to-files string - Add reference to Files API (MFS) at the --stdin-name string - Assign a name if the file source is stdin. """ [[commands.subcommand.field]] id = "paths" label = "Files or directories" type = "path" position = 0 multiple = true path = { kind = "any", role = "input" } sources = ["cli"] [[commands.subcommand.field]] id = "recursive" label = "Add directories recursively" type = "boolean" option = ["--recursive", "-r"] sources = ["cli"] [[commands.subcommand.field]] id = "hidden" label = "Include hidden files" type = "boolean" option = ["--hidden", "-H"] sources = ["cli"] [[commands.subcommand.field]] id = "wrap" label = "Wrap in a directory" type = "boolean" option = ["--wrap-with-directory", "-w"] sources = ["cli"] [[commands.subcommand.field]] id = "only_hash" label = "Only hash, do not store" type = "boolean" option = ["--only-hash", "-n"] sources = ["cli"] [[commands.subcommand.field]] id = "quieter" label = "Print only the final hash" type = "boolean" option = ["--quieter", "-Q"] sources = ["cli"] [[commands.subcommand.field]] id = "cid_version" label = "CID version" type = "integer" option = ["--cid-version"] sources = ["cli"] [[commands.subcommand.field]] id = "to_files" label = "Also add to MFS path" type = "string" option = ["--to-files"] sources = ["cli"] [[commands.subcommand.task]] id = "add-dir" label = "Add a directory" set = { recursive = [true] } fields = ["paths", "recursive"] required = ["paths"] [[commands.subcommand.task]] id = "hash-only" label = "Compute the CID only" set = { only_hash = [true], quieter = [true] } fields = ["paths", "only_hash", "quieter"] required = ["paths"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["paths", "recursive", "hidden", "wrap", "only_hash", "quieter"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["cid_version", "to_files"]