All apps/Universal Ctags

Universal Ctags

ctags

Generate an index (or tag) file of language objects found in source files.

Runs as ctags|macOS, Linux, Windows|ctags.io

Command form

ai-draft · 2 tasks · 9 fields

Index source files into a tags file with Universal Ctags. Per-language kinds, fields and extras, regex parsers and option files are left out.

Opens the form; the finished command lands at your prompt, unrun
otty gui ctags
Generate tagsExample values, fixed in this page — nothing here reaches a terminal
Basic
Files or directories
any
Recurse into directories
--recurse
Exclude pattern
string
Languages
string
TasksEach one presets the form for one job
Index this project
filesrecurseexcludelanguages
Print JSON to stdout
filesrecurseexclude
ParametersOnly these flags are editable in the form
Files or directories
With Recurse on and nothing listed, the current directory is indexed.
path · positional 0 · repeatable
Recurse into directories
boolean
--recurse-R
Tag file
Defaults to tags; - writes to standard output.
path
-f
Append to existing tag file
boolean
--append-a
Exclude pattern
string · repeatable
--exclude
Languages
Comma-separated list, or all.
string
--languages
Sort tags
enum
--sortyesnofoldcase
Output format
enum
--output-formatu-ctagse-ctagsetagsxrefjson
File list
Read the names of files to index from a file; - reads standard input.
path
-L
SourcesEvery flag above is checked against these
manual
``--exclude=<pattern>`` ``--recurse[=(yes|no)]`` ``-R`` Equivalent to ``--recurse``. ``-L <file>`` ``--append[=(yes|no)]`` ``-a`` Equivalent to ``--append``. ``-f <tagfile>`` ``--output-format=(u-ctags|e-ctags|etags|xref|json)`` ``--sort=(yes|no|foldcase)`` ``--languages=[+|-](<list>|all)``
manual2026-10-27

docs.ctags.io

Before it fills your prompt, Otty checks the installed ctags against its version. A form that does not match your version is not offered.