{"id":17030441,"url":"https://github.com/vsoch/nushell-plugin-pokemon","last_synced_at":"2026-04-30T18:32:52.129Z","repository":{"id":141667884,"uuid":"216088082","full_name":"vsoch/nushell-plugin-pokemon","owner":"vsoch","description":"An example plugin for Nushell in Python that catches ascii pokemon","archived":false,"fork":false,"pushed_at":"2019-10-18T19:01:01.000Z","size":106,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T20:29:46.505Z","etag":null,"topics":["nu-plugin","nushell","pokemon"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsoch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-18T18:50:23.000Z","updated_at":"2020-07-04T15:46:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1743642-1e6c-47ff-8de0-a2d54b2bf54b","html_url":"https://github.com/vsoch/nushell-plugin-pokemon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vsoch/nushell-plugin-pokemon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsoch%2Fnushell-plugin-pokemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsoch%2Fnushell-plugin-pokemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsoch%2Fnushell-plugin-pokemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsoch%2Fnushell-plugin-pokemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsoch","download_url":"https://codeload.github.com/vsoch/nushell-plugin-pokemon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsoch%2Fnushell-plugin-pokemon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32473804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nu-plugin","nushell","pokemon"],"created_at":"2024-10-14T08:06:54.672Z","updated_at":"2026-04-30T18:32:52.112Z","avatar_url":"https://github.com/vsoch.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nushell Plugin in Python\n\n![img/nushell-plugin-pokemon.png](img/nushell-plugin-pokemon.png)\n\nThis is an example implementation of a Pokemon plugin for Nushell in Python.\nI wanted to create this to clearly lay out how someone should provide named\narguments.\n\nSee the asciinema example too:\n\n[![asciicast](https://asciinema.org/a/275414.svg)](https://asciinema.org/a/275414)\n\n\n## Build\n\nYou can optionally build the container:\n\n```bash\n$ docker build -t vanessa/nu-plugin-pokemon .\n```\n\nIf you don't, it's available on Docker Hub and will be pulled automatically.\n\n## Usage\n\nRun the container to access the nu entrypoint!\n\n```bash\n$ docker run -it vanessa/nu-plugin-pokemon\n```\n\nOnce inside you can ask for help for the plugin:\n\n```bash\n/code\u003e help pokemon\nCatch an asciinema pokemon on demand.\n\n  --avatar AVATAR    generate a pokemon avatar for some unique id.\n  --pokemon POKEMON  generate ascii for a particular pokemon (by name)\n  --catch            catch a random pokemon!\n  --list             list pokemon available\n  --list-sorted      list pokemon available (sorted)\n  --help             show this usage\n\n\nUsage:\n  \u003e pokemon {flags} \n\nflags:\n  --avatar \u003cString\u003e\n  --pokemon \u003cString\u003e\n  --catch\n  --help\n  --list-sorted\n```\n\nI also implemented the (more expected) --help command, which looks cleaner too:\n\n```\n/code\u003e pokemon --help\nCatch an asciinema pokemon on demand.\n\n  --avatar AVATAR    generate a pokemon avatar for some unique id.\n  --pokemon POKEMON  generate ascii for a particular pokemon (by name)\n  --catch            catch a random pokemon!\n  --list             list pokemon available\n  --list-sorted      list pokemon available (sorted)\n  --help             show this usage\n```\n\n### Catch A Pokemon\n\nTo catch a random pokemon, use the --catch flag.\n\n```bash\n/code\u003e pokemon --catch\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+,.,@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,::.:@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.,,:*.@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,:**S@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,,,:**S@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,,**S.***@@@@@@@@@@@\n@@@+,,,,,,,,,*@@@@@@@@@@@@@@@@@@@@@@@*,,:,**%++..*@@@@@@@@@@\n@,,,,,,,,,,,,,,,@,.@@@@@@@@@@@@@@@@@@*,:::*.::+++.@@@@@@@@@@\n,,,,,,,,,,,,,,,,,,,,@,@@@@@@@@@@@@@@@@::::*.S,:::+@@@@@@@@@@\n@,,,,,,,,,,,,,::,,,,,,,@.@@@@@@@@@@@@@*:::**.S::,:.+.@@@@@@@\n@@,,,,,,,,,:::::::::::,,,,*@@@@@@@@@@@@*:::*.S..%%.++++.S@@@\n@@@,,,,,,,,:*:::**.::*:**::,@@@@@@@@@@...+::*@@@@@@@@@@@@@@@\n@@@@.,,,,,,:*::*@@@@@@@@...::,@@@@@@@*:+**@@@.@@@@@@@@@@@@@@\n@@@@@@*,,,,,*::.@@@@@@@@@@@..::@@@@@:*:,:*@@@@@@@@@@@@@@@@@@\n@@@@@@@@:,,:::.*:@@@@@@@@@@@@.:,@@@****::+@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@.,::*.+@@@@@@@@@@@@,*@@+:**.::+@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@*::*.,@@@@@@@@@@@@*:::::+::*@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@::..@@@@@@@.:,::::::.::.@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@*+.:::::::::***:*::.@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@.*:::::::++:::::****+**S*S.@@@@@@@@@@@@@@@@@\n@@@@@@@@@@,+::::::::::.+.::::*****.....S:*++@@@@@@@@@@@@@@@@\n@@@@@+****.:::::::.:+++::*******S+++++****+S...@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@:.++***********+.+S***...?@@@@...@@@@@@@@@@\n@@@@@@@@@@@@@@@:...,...*******.++.+..****@@@@@@@@***.@@@@@@@\n@@@@@@@@@@@@@,****@@@+......+++..******,..*@@@@@@@@:::.@@@@@\n@@@@@@@@@@@@::::,@@@@@@@+..++******+@@@@@@@....,@@@@::::@@@@\n@@@@@@@@@@@::::*,,:.:*::**.@@@@@@@@@@@@@@@@@@@@*:::*:*:::@@@\n@@@@@@@@@:*:****::*:***.@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.::::@@\n@@@@@@@@@***:*::****+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@****:*::.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nCresselia http://pokemondb.net/pokedex/cresselia\n```\n\n### Pokemon Avatar\n\nYou can generate a unique avatar based on a string input (maybe your alias?)\n\n```bash\n/code\u003e pokemon --avatar dinosaur\n@@@@@@@@@@@@.?%..%%.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@%*.........****.*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@?.+S%?%.+++++.....++?.*..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@.......%...**+.++..%+.+##.#@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@,.%......%...S....?+%SSSS+S.@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@SS*..+***..........*+?+S+?.S@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@:+*..,,,:::*S+......*.++++.*@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@%S@,,,:::#.:%........+++++@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@S,,,::::.?..*........++++,@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@,,::::,,::::**....+%*.+++,@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@.S,@+,:::::::*:*.....%++S@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@.:::::.*...*..S++@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@,:::,@.%+++++S+@@@@@@@@@@@@@@@@@@.*..?@@@@\n@@@@@@@@@@@@@@@@@@,:::,@@@@@@@@@@@@@@@@@@@@@@@@@@@+....++@@@\n@@@@@@@@@@@@@@@S..,::::S%*@@@@@@@@@@@@@@@@@@@@+...++++++++++\n@@@@@@@@:.,,,,:+::::::::*%+:*,,#@@@@@@@@@@@@@+....+.#S.S+...\n@@@@@@@,,,:.,,:,::::::,::::::,#::,.@@@@@@@@@@@.++++%*.#+++++\n@@@@@@@@.,,,,,,:?,,,,,,?::::::::,@@@@@@@@@@@@@@@@@S?::S+,,@@\n@@@@@@@*,,,:,++SS:,,,,,?S+%:::::,,@@@@@@@@@@@@@@@@,,::@@@@@@\n@@@@@@@%+%?++....*@,,,,SS+#S?S+@@@@@@@@@@@@@@@@@@+,,:.@@@@@@\n@@@@:.+..S+*........*.S...S%S++@@@@@@@@@@@@@@@@@.,,:.@@@@@@@\n@@@,....S%%............?.+.++S#%@@@@@@@@@@@@@@+,,,::@@@@@@@@\n@@@@%S+S.+S..............?S+?.++%@@@@@@@@@@+,,,,::%@@@@@@@@@\n@@@@@@.......................++++%@@@@:%*,,,,,::,:@@@@@@@@@@\n@@@@@@?...+?++.....+++.......+++++.******::::::?@@@@@@@@@@@@\n@@@@@@:....+?+++++++++?.....++++++%******::::%@@@@@@@@@@@@@@\n@@@@@@@@.+++++#++++++++.++++++S++++:******::@@@@@@@@@@@@@@@@\n@@@@@@@@@@@.++++..++++++.++++++++++:***:%@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@.+++.@@@@*????#%++++++?@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@*..+++:@@@@@@@@@@@@@@++++#@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@%.S%S.++++?@@@@@@@@@@@@@@@S+++++@@@@@@@@@@@@@@@@@@@@@@\n@@@S.S?+SSS+++++*@@@@@@@@@@@@@%?...%?.@@@@@@@@@@@@@@@@@@@@@@\n@%S?+SSSSSS+.@@@@@@@@@@@@@@@.*SS++%SSS+@@@@@@@@@@@@@@@@@@@@@\n@,.SSS%.:@@@@@@@@@@@@@@@@@@S.SSSS#+SSSS+@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@.SSSS,%SSSSSS@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@,S+.@@@%SS+?@@@@@@@@@@@@@@@@@@@@@@\n\ndinosaur\n```\n\n## List\n\nYou can list all the pokemon names in the database\n\n```bash\n/code\u003e pokemon --list\n...\nSliggoo\nGoodra\nKlefki\nPhantump\nTrevenant\nPumpkaboo\nGourgeist\nBergmite\nAvalugg\nNoibat\nNoivern\nXerneas\nYveltal\nZygarde\nDiancie\nHoopa\nVolcanion\n```\n\nYou can also list them sorted (ABC-Z)\n\n```bash\n/code\u003e pokemon --list-sorted\n```\n\n## Pokemon\n\nOnce you know a specific pokemon, you can request him by name\n\n```bash\n/code\u003e pokemon --pokemon goodra\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@.::::*S,,,,,,:,@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@.%..+,+,,,::::::,:*@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@+:..?:::::::::::::::,@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@:,,,:::::%++*:::::::@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@,,,,,,::::::SS@*::::,:@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@,,,,:+,*++::.S@@@:::::*@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@,,,:.+:.S+SS:S@@@@.::::@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@,S.......*:*S@@@@@,:::,@@@@@@@@::\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::?....%%S@@@@@@@%::::S@@@@.:@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,@S....%@+*@@@@@@@@,*:::::S@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:S....*@*.@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,:.....@@@@...+@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@S::%....,@@@@@@*S@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@+:::..:..:,,,,.@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@::,::::::,::::*@@S:,,,,,.?@@@@@@@@@@\n@@@@@,,,,+@@@@@@@@@@@,::::::::::::::::....::::.@@@@@@@@@@@@@\n@@,:,,,.::@@@@@@@@@,:::::::.+:::::.::.....%::,@@@@@@@@@@@@@@\n@@,,,+,::@@@@@@@@,:::::::....:*.....:S@@@@@,,@@@@@@@@@@@@@@@\n@*:,:::.@@@@@@@@*::::::....*::*......:*@@@@@@@@@@@@@@@@@@@@@\n:::,:::::.@@@@@::::::::..*::::*......%::@@@@@@@@@@@@@@@@@@@@\n.::::::::::::,:::,::::::+:::::.......+:::@@@@@@@@@@@@@@@@@@@\n:.:,:::::::::*:::,:::::::*::*.........::,,@@@@@@@@@@@@@@@@@@\n@SS:,,:::::,,:::,,,:::::::...........:::,,@@@@@@@@@@@@@@@@@@\n@@+++S::,,,,,::::,,,:::::::.........::::::@@@@@@@@@@@@@@@@@@\n@@@S+S+SS.++..::::::::::::*+++++++........@@@@@@@@@@@@@@@@@@\n@@@@%+++S.SS+..............++++S.........@@@@@@@@@@@@@@@@@@@\n@@@@@@@.S+S+++++..........+++.@S......S@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@*%++++........,@@@@@@@%.....:@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@.....@@@@@@@@@@@@,.%.@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@...+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\nGoodra\n```\n\n\n## Test Without Nu\n\nIt's possible to test without nushell by giving json objects to the python\nscript, and you'll need Python3 installed on your host.\n\n### Config\n\n```bash\n$ ./nu_plugin_pokemon.py\n{\"method\":\"config\"}\n\n{\"jsonrpc\": \"2.0\", \"method\": \"response\", \"params\": {\"Ok\": {\"name\": \"pokemon\", \"usage\": \"Catch an asciinema pokemon on demand.\\n\\n  --avatar AVATAR    generate a pokemon avatar for some unique id.\\n  --pokemon POKEMON  generate ascii for a particular pokemon (by name)\\n  --message MESSAGE  add a custom message to your ascii!\\n  --catch            catch a random pokemon!\\n  --list             list pokemon available\\n  --list-sorted      list pokemon available (sorted)\\n\", \"positional\": [], \"rest_positional\": null, \"named\": {\"avatar\": {\"Optional\": \"String\"}, \"pokemon\": {\"Optional\": \"String\"}, \"message\": {\"Optional\": \"String\"}, \"catch\": \"Switch\", \"list\": \"Switch\", \"list-sorted\": \"Switch\"}, \"is_filter\": false}}}\n```\n\n### Sink\n\nUnlike a filter, the method we care about here is \"sink\" - where basically nu will\ngive full control of stdout to the plugin, along with all the input parameters from\nthe user. Here is an example with requesting to catch a pokemon:\n\n```bash\n$ ./nu_plugin_pokemon.py\n{\"jsonrpc\":\"2.0\",\"method\":\"sink\",\"params\":[{\"args\":{\"positional\":null,\"named\":{\"catch\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":10,\"end\":15}},\"item\":{\"Primitive\":{\"Boolean\":true}}}}},\"name_tag\":{\"anchor\":null,\"span\":{\"start\":0,\"end\":7}}}]}\n```\n\nThe above will print the pokemon to the screen.\n\n\n## Order of Operations\n\nKeep in mind that when nushell finds the plugin on the path, it's going to:\n\n - discover the plugin by way of being on the path\n - call the \"config\" method to get metadata and register it\n - call sink when it's invoked\n - nu passes stdout to the plugin\n - the plugin can print to stdout to it's heart's content!\n\nThat's a very high level description, see [the plugin page](https://github.com/nushell/contributor-book/blob/master/en/plugins.md) to read more about discovery and usage.\n\n## Logging\n\nNote that since I'm going to be using the plugin in a container, I don't\nmind logging to a temporary file at `/tmp/nu-plugin-pokemon.log`. This\nwill show basic operations for each execution, for example:\n\n```bash\n/code\u003e cat /tmp/nu_plugin_pokemon.log\nroot - INFO - REQUEST {\"jsonrpc\":\"2.0\",\"method\":\"sink\",\"params\":[{\"args\":{\"positional\":null,\"named\":{\"catch\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":10,\"end\":15}},\"item\":{\"Primitive\":{\"Boolean\":true}}}}},\"name_tag\":{\"anchor\":null,\"span\":{\"start\":0,\"end\":7}}},[]]}\n\nroot - INFO - METHOD sink\nroot - INFO - PARAMS {'catch': True}\nroot - INFO - We want to catch a random pokemon!\n```\n\n## Development\n\nIt's helpful to use `nu -l trace` to confirm that nu found your plugin,\nand see other debugging information (along with our temporary log file).\n\n```bash\n/code(add/circleci)\u003e nu -l trace\n...\n TRACE nu::cli \u003e Trying \"/usr/local/bin/nu_plugin_pokemon\"\n TRACE nu::cli \u003e processing response (717 bytes)\n```\n\nFor those interested in seeing the responses that get shared with the plugin from nu, here are\na few examples. This was done when I was just developing, and testing named arguments for:\n\n - mandatory\n - optional\n - switch\n\n```\n/code\u003e pokemon --mandatory MANDATORYARG\n/code\u003e cat /tmp/nu_plugin_pokemon.log\nroot - INFO - REQUEST {\"jsonrpc\":\"2.0\",\"method\":\"sink\",\"params\":[{\"args\":{\"positional\":null,\"named\":{\"mandatory\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":20,\"end\":32}},\"item\":{\"Primitive\":{\"String\":\"MANDATORYARG\"}}}}},\"name_tag\":{\"anchor\":null,\"span\":{\"start\":0,\"end\":7}}},[]]}\n\nroot - INFO - METHOD sink\n/code\u003e pokemon --mandatory MANDATORYARG --optional OPTIONALARG --switch\n/code\u003e cat /tmp/nu_plugin_pokemon.log\nroot - INFO - REQUEST {\"jsonrpc\":\"2.0\",\"method\":\"sink\",\"params\":[{\"args\":{\"positional\":null,\"named\":{\"switch\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":58,\"end\":64}},\"item\":{\"Primitive\":{\"Boolean\":true}}},\"mandatory\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":20,\"end\":32}},\"item\":{\"Primitive\":{\"String\":\"MANDATORYARG\"}}},\"optional\":{\"tag\":{\"anchor\":null,\"span\":{\"start\":44,\"end\":55}},\"item\":{\"Primitive\":{\"String\":\"OPTIONALARG\"}}}}},\"name_tag\":{\"anchor\":null,\"span\":{\"start\":0,\"end\":7}}},[]]}\n```\n\nI hope it helps someone!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsoch%2Fnushell-plugin-pokemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsoch%2Fnushell-plugin-pokemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsoch%2Fnushell-plugin-pokemon/lists"}