id = "oxen" name = "Oxen" homepage = "https://www.oxen.ai/" description = "Data VCS for structured and unstructured machine learning datasets" executables = ["oxen"] [dotfiles] # https://docs.oxen.ai/getting-started/oxen-server documents the current # ~/.config/oxen/auth_config.toml token file. Older Oxen client docs # (https://oxen-release.readthedocs.io/) document ~/.oxen/user_config.toml; # retain both shipped spellings as whole-file credentials. paths = [] secret = ["~/.config/oxen/auth_config.toml", "~/.oxen/user_config.toml"] [commands] format = 1 label = "Oxen" description = "Common Oxen version-control jobs: add, commit, clone and push. Other subcommands are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["add"] label = "Stage files" [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Oxen-AI/Oxen/blob/HEAD/crates/oxen-cli/src/cmd/add.rs" revision = "HEAD 2026-10-27" evidence = """ .about("Adds the specified files or directories") Arg::new("files") """ [[commands.subcommand.field]] id = "files" label = "Files or directories" type = "path" path = { kind = "any", role = "input" } position = 0 multiple = true sources = ["src"] [[commands.subcommand.task]] id = "add" label = "Stage files" fields = ["files"] required = ["files"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["files"] [[commands.subcommand]] path = ["commit"] label = "Commit staged files" [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Oxen-AI/Oxen/blob/HEAD/crates/oxen-cli/src/cmd/commit.rs" revision = "HEAD 2026-10-27" evidence = """ .about("Commit the staged files to the repository.") .help("The message for the commit. Should be descriptive about what changed.") .long("message") --message .short('m') -m .help("Allow creating a commit with no changes") .long("allow-empty") --allow-empty """ [[commands.subcommand.field]] id = "message" label = "Commit message" type = "string" option = ["--message", "-m"] sources = ["src"] [[commands.subcommand.field]] id = "allow_empty" label = "Allow empty commit" type = "boolean" option = ["--allow-empty"] sources = ["src"] [[commands.subcommand.task]] id = "commit" label = "Commit" fields = ["message"] required = ["message"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["message", "allow_empty"] [[commands.subcommand]] path = ["clone"] label = "Clone a repository" [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Oxen-AI/Oxen/blob/HEAD/crates/oxen-cli/src/cmd/clone.rs" revision = "HEAD 2026-10-27" evidence = """ .about("Clone a repository by its URL") .long("filter") --filter .long("depth") --depth .long("all") --all .short('a') -a .long("branch") --branch .short('b') -b .help("The branch you want to pull to when you clone.") """ [[commands.subcommand.field]] id = "url" label = "Repository URL" type = "url" position = 0 sources = ["src"] [[commands.subcommand.field]] id = "branch" label = "Branch" type = "string" option = ["--branch", "-b"] sources = ["src"] [[commands.subcommand.field]] id = "all" label = "Full history and data" type = "boolean" option = ["--all", "-a"] sources = ["src"] [[commands.subcommand.field]] id = "filter" label = "Directory filter" type = "string" option = ["--filter"] sources = ["src"] [[commands.subcommand.field]] id = "depth" label = "Subtree depth" description = "Used together with the filter." type = "integer" option = ["--depth"] sources = ["src"] [[commands.subcommand.task]] id = "clone" label = "Clone" fields = ["url", "branch"] required = ["url"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["url", "branch", "all", "filter", "depth"] [[commands.subcommand]] path = ["push"] label = "Push to a remote" [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Oxen-AI/Oxen/blob/HEAD/crates/oxen-cli/src/cmd/push.rs" revision = "HEAD 2026-10-27" evidence = """ .about("Push the files to the remote branch") .help("Remote you want to push to") .help("Branch name to push to") .long("delete") --delete .short('d') -d .help("Remove the remote branch") .long("force") --force .short('f') -f .help("Force push even if the remote branch is not a fast-forward") """ [[commands.subcommand.field]] id = "remote" label = "Remote" type = "string" position = 0 sources = ["src"] [[commands.subcommand.field]] id = "branch" label = "Branch" type = "string" position = 1 sources = ["src"] [[commands.subcommand.field]] id = "delete" label = "Delete the remote branch" type = "boolean" option = ["--delete", "-d"] effect = "delete" sources = ["src"] [[commands.subcommand.field]] id = "force" label = "Force push" type = "boolean" option = ["--force", "-f"] effect = "overwrite" sources = ["src"] [[commands.subcommand.task]] id = "push" label = "Push" fields = ["remote", "branch"] required = ["remote", "branch"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["remote", "branch", "delete", "force"]