datalad(1)

πŸ’… datalad β€” the comprehensive data management solution, bestie

okay so picture this: you've got data, you've got code, you've got way too many repos, and you're lowkey losing it. datalad is literally the answer. this page is the full tour. let's go 🫢


✨ SYNOPSIS ✨

datalad [-c (:name|name=value)] [-C PATH] [--cmd] [-l LEVEL] [--on-failure {ignore,continue,stop}] [--report-status {success,failure,ok,notneeded,impossible,error}] [--report-type {dataset,file}] [-f {generic,json,json_pp,tailored,disabled,'<template>'}] [--dbg] [--idbg] [--version]  COMMAND  ...

🌸 DESCRIPTION 🌸

so DataLad is a unified data distribution system, and it's built on top of Git and Git-annex β€” yes, both, she's ambitious πŸ’…

the DataLad command line tools let you manipulate datasets β€” like obtain, create, update, publish, etc. β€” and honestly it's a whole comprehensive toolbox for managing your data and your code together, hand in hand, no drama.

compared to plain Git/annex, the main character move is this: it extends their functionality so you can transparently and simultaneously work with multiple inter-related repositories. it's giving organized. it's giving ✨glow up✨.


πŸŽ€ OPTIONS πŸŽ€

first up, the ✨subcommand menu✨ β€” these are all the COMMANDs you can pick from:

  • create-sibling-github
  • create-sibling-gitlab
  • create-sibling-gogs
  • create-sibling-gin
  • create-sibling-gitea
  • create-sibling-ria
  • create-sibling
  • siblings
  • update
  • subdatasets
  • drop
  • remove
  • addurls
  • copy-file
  • download-url
  • foreach-dataset
  • install
  • rerun
  • run-procedure
  • create
  • save
  • status
  • clone
  • get
  • push
  • run
  • diff
  • configuration
  • wtf
  • clean
  • add-archive-content
  • add-readme
  • export-archive
  • export-archive-ora
  • export-to-figshare
  • no-annex
  • check-dates
  • unlock
  • uninstall
  • create-test-dataset
  • sshrun
  • shell-completion

and now the actual global flags, bestie:

  • -c (:name|name=value) β€” specify configuration setting overrides πŸ’– these bad girls override any configuration read from a file. and you can also unset a configuration temporarily by prefixing its name with a colon (':'), like ':user.name'. oh and heads up: overrides you put here may themselves get overridden by configuration settings declared as environment variables. it's overrides all the way down 😭
  • -C PATH β€” run as if datalad was started in <path> instead of the current working directory. when you give multiple -C options, each subsequent non-absolute -C <path> is interpreted relative to the preceding -C <path>. this option affects how path names get interpreted, in that they're made relative to the working directory caused by the -C option πŸ¦‹
  • --cmd β€” a syntactical helper, ngl. use it to end the list of global command line options before the subcommand label. options that take an arbitrary number of arguments may require being followed by a single --cmd in order to enable identification of the subcommand 🌈
  • -l LEVEL, --log-level LEVEL β€” set the logging verbosity level, bestie. choose among critical, error, warning, info, debug. and you can also specify an integer <10 to provide even more debugging information πŸ”₯
  • --on-failure {ignore, continue, stop} β€” what happens when an operation fails:
    • 'ignore' β€” continue with the remaining operations; the error gets logged but does not lead to a non-zero exit code of the command
    • 'continue' β€” works like 'ignore', but an error causes a non-zero exit code
    • 'stop' β€” halts on the first failure and yields a non-zero exit code

a failure is any result with status 'impossible' or 'error'. [Default: 'continue', but individual commands may define an alternative default] β€” so like, don't come for me if a subcommand switches it up πŸ™ˆ

  • --report-status {success, failure, ok, notneeded, impossible, error} β€” constrain the command result report to only records matching the given status. 'success' is a synonym for 'ok' OR 'notneeded', and 'failure' stands for 'impossible' OR 'error' πŸ’€ (iykyk)
  • --report-type {dataset, file} β€” constrain the command result report to records matching the given type. you can give this more than once to match multiple types πŸ‘‘
  • -f {generic, json, json_pp, tailored, disabled,'<template>'}, --output-format {generic, json, json_pp, tailored, disabled,'<template>'} β€” select the rendering mode for command results. the lineup:
    • 'tailored' β€” enables a command-specific rendering style that's typically tailored to human consumption, if there is one for that specific command, or otherwise falls back on the 'generic' result renderer
    • 'generic' β€” renders each result in one line with key info like action, status, path, and an optional message
    • 'json' β€” a complete JSON line serialization of the full result record
    • 'json_pp' β€” like 'json', but pretty-printed, spanning multiple lines
    • 'disabled' β€” turns off result rendering entirely
    • '<template>' β€” reports any value(s) of any result properties in any format indicated by the template (e.g. '{path}' β€” compare with JSON output for all key-value choices)

the template syntax follows the Python "format() language". it's possible to report individual dictionary values, e.g. '{metadata[name]}'. and if a 2nd-level key contains a colon, e.g. 'music:Genre', the ':' must be substituted by '#' in the template, like so: '{metadata[music#Genre]}'. [Default: 'tailored'] ✨

  • --dbg β€” enter the Python debugger for an uncaught exception πŸ›
  • --idbg β€” enter the IPython debugger for an uncaught exception πŸ›βœ¨
  • --version β€” show the module and its version which provides the command πŸ’œ

πŸ‘‘ AUTHORS πŸ‘‘

datalad is developed by The DataLad Team and Contributors <team@datalad.org> β€” absolute icons, fr fr 🫢


okay that's the whole page, you made it, I'm so proud of you πŸŽ€ this is datalad 1.1.5, dated 2025-06-15 β€” go forth and manage some data, bestie, you're gonna slay πŸ’…βœ¨

πŸ“¦ where this page comes from