id = "rizin"
name = "Rizin"
homepage = "https://rizin.re/"
description = "A UNIX-like reverse-engineering framework and command-line toolset."
executables = ["rizin", "rz-asm", "rz-bin"]
[dotfiles]
paths = ["~/.rizinrc"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Open a binary"
description = "Open a file in Rizin, optionally running commands or a script and quitting for batch analysis. Debugger, remote, project and rz-run options are left out; rz-bin and rz-asm are separate tools."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://man.archlinux.org/man/rizin.1.en"
revision = "Arch man page 2026-10-27"
evidence = """
-a
[arch]
Set the assembly architecture.(x86, ppc, arm, mips, bf, java, ...)
-A
Run 'aaa' command before prompt or patch to analyze all referenced code
-b
[bits]
Set the assembly bitness. (16, 32, 64)
-c
'cmd..'
Execute the specified Rizin command
-e
k=v
Evaluate the specified configuration variable
-i
[file]
Run the commands from the script file
-N
Disable user settings/projects from ~/.rizinrc, ~/.config/rizin/rizinrc
-q
Quiet mode, suppresses prompt and quits after script execution
-s
[addr]
Start seeking at this address
-w
Open in write mode
-d
Debug the executable 'file' or running process 'pid'
"""
[[commands.field]]
id = "file"
label = "File"
type = "path"
position = 0
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "analyze"
label = "Analyze all (aaa) on load"
type = "boolean"
option = ["-A"]
sources = ["man"]
[[commands.field]]
id = "command"
label = "Commands to run"
description = "Each entry is one Rizin command executed in order, for example 'iI' or 'afl'. Quote entries with spaces."
type = "string"
option = ["-c"]
multiple = true
sources = ["man"]
[[commands.field]]
id = "script"
label = "Script file"
type = "path"
option = ["-i"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "quiet"
label = "Quiet (quit after commands)"
type = "boolean"
option = ["-q"]
sources = ["man"]
[[commands.field]]
id = "arch"
label = "Architecture"
type = "string"
option = ["-a"]
suggestions = [{ value = "x86", label = "x86" }, { value = "arm", label = "ARM" }, { value = "ppc", label = "PowerPC" }, { value = "mips", label = "MIPS" }]
sources = ["man"]
[[commands.field]]
id = "bits"
label = "Bitness"
type = "enum"
choices = [{ value = "16", label = "16" }, { value = "32", label = "32" }, { value = "64", label = "64" }]
option = ["-b"]
sources = ["man"]
[[commands.field]]
id = "seek"
label = "Start address"
type = "string"
option = ["-s"]
sources = ["man"]
[[commands.field]]
id = "eval"
label = "Config variables"
description = "One key=value per entry."
type = "string"
option = ["-e"]
multiple = true
sources = ["man"]
[[commands.field]]
id = "write"
label = "Open in write mode"
type = "boolean"
option = ["-w"]
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "no_rc"
label = "Skip ~/.rizinrc"
type = "boolean"
option = ["-N"]
sources = ["man"]
[[commands.task]]
id = "interactive"
label = "Open and analyze"
fields = ["file", "analyze"]
required = ["file"]
[[commands.task]]
id = "batch"
label = "Run commands and quit"
fields = ["file", "analyze", "command", "quiet"]
required = ["file", "command"]
set = { quiet = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["file", "analyze", "command", "script", "quiet"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["arch", "bits", "seek", "eval", "write", "no_rc"]