{
  "id": "twarc",
  "name": "twarc",
  "homepage": "https://twarc-project.readthedocs.io/",
  "description": "Command-line and Python tools for archiving Twitter/X data.",
  "executables": [
    "twarc"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "~/.twarc"
    ]
  },
  "commands": {
    "format": 1,
    "label": "twarc",
    "description": "Collect tweets with the v1.1 twarc command. Only search is modelled; filter, timeline, hydrate and the premium-archive options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "search"
        ],
        "label": "Search tweets",
        "description": "Search recent tweets. Output goes to stdout; redirect it to a .jsonl file in the shell.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://twarc-project.readthedocs.io/en/latest/twarc1_en_us/",
            "revision": "2026-10-27",
            "evidence": "twarc search blacklivesmatter > tweets.jsonl\ntwarc search '#blacklivesmatter' --lang fr > tweets.jsonl\ntwarc search blacklivesmatter --geocode 38.7442,-90.3054,1mi > tweets.jsonl\nIf a search query isn't supplied when using --geocode you will get all tweets relevant for that location and radius\nyou will likely want to limit the time range using --to_date and --from_date. Additionally you can limit the maximum number of tweets returned using --limit.\n"
          }
        ],
        "field": [
          {
            "id": "query",
            "label": "Query",
            "description": "Search terms, for example '#blacklivesmatter OR #blm'. Optional when a geocode is given.",
            "type": "string",
            "position": 0,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "lang",
            "label": "Language (ISO 639-1)",
            "type": "string",
            "option": [
              "--lang"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "geocode",
            "label": "Geocode",
            "description": "latitude,longitude,radius, for example 38.7442,-90.3054,1mi.",
            "type": "string",
            "option": [
              "--geocode"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "from_date",
            "label": "From date",
            "type": "string",
            "option": [
              "--from_date"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "to_date",
            "label": "To date",
            "type": "string",
            "option": [
              "--to_date"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "limit",
            "label": "Maximum tweets",
            "type": "integer",
            "option": [
              "--limit"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "search_query",
            "label": "Search a query",
            "fields": [
              "query",
              "lang",
              "limit"
            ],
            "required": [
              "query"
            ]
          },
          {
            "id": "search_near",
            "label": "Search near a location",
            "fields": [
              "query",
              "geocode",
              "limit"
            ],
            "required": [
              "geocode"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "query",
              "lang",
              "geocode",
              "limit"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "from_date",
              "to_date"
            ]
          }
        ]
      }
    ]
  }
}
