{"id":18462679,"url":"https://github.com/extism/cli","last_synced_at":"2025-04-08T07:32:22.888Z","repository":{"id":59488437,"uuid":"528101655","full_name":"extism/cli","owner":"extism","description":"The extism CLI is used to generate plugin scaffolding and manage Extism installations","archived":false,"fork":false,"pushed_at":"2024-10-15T18:25:07.000Z","size":1070,"stargazers_count":21,"open_issues_count":13,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-17T02:59:00.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/extism.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-23T17:43:52.000Z","updated_at":"2024-10-15T18:25:10.000Z","dependencies_parsed_at":"2024-03-12T16:56:12.206Z","dependency_job_id":"5186ec86-1bf4-41e8-a569-170eadcbfb3d","html_url":"https://github.com/extism/cli","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extism%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extism%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extism%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extism%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/extism","download_url":"https://codeload.github.com/extism/cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247796297,"owners_count":20997545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-06T09:04:01.821Z","updated_at":"2025-04-08T07:32:22.376Z","avatar_url":"https://github.com/extism.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# extism CLI\n\nThe [Extism](https://github.com/extism/extism) CLI can be used to generate or\nexecute Extism plugins and manage libextism installations.\n\n## Installation\n\n### Using curl/sh:\n\n```shell\ncurl https://get.extism.org/cli | sh\n```\n\nSee the help output for more options:\n\n```shell\ncurl https://get.extism.org/cli | sh -s -- -h\n```\n\n### From source:\n\n```shell\ngo install github.com/extism/cli/extism@latest\n```\n\n### Using Nix:\n\n```shell\nnix-shell -p extism-cli\n```\n\n### Manual\n\nYou can also download and extract the latest release from\n[https://github.com/extism/cli/releases](https://github.com/extism/cli/releases)\n\n## Generate a Plugin\n\nTo quickly start writing an Extism plugin in any of the supported PDK languages,\nusing `extism` CLI to generate minimal boilerplate may be helpful:\n\n```sh\nmkdir js-plugin \u0026\u0026 cd js-plugin\nextism generate plugin \n\n  Select a PDK language to use for your plugin:  \n                                                 \n    1. Rust                                      \n  \u003e 2. JavaScript                                \n    3. Go                                        \n    4. Zig                                       \n    5. C#                                        \n    6. F#                                        \n    7. C                                         \n    8. Haskell                                   \n    9. AssemblyScript                            \n# or pass a path to the output via `-o`, see more options running `extism generate -h`\n```\n\nThis will output a quickstart plugin project with the necessary configuration\nand dependencies ready. If no output directory was specified, the current\ndirectory will be used.\n\n**NOTE:**: You may still need to install language tools such as compilers or\nother system dependencies to compile the plugin to WebAssembly.\n\nTo further improve this, we will eventually include a `Dockerfile` in each\ngenerated project, so a build environment can be easily created with all tools\nnecessary. If you're interested in contributing to this effort, please join us\non [Discord](https://extism.org), and check out the PDK template repository of\ninterest, listed in\n[pdk-templates.json](https://github.com/extism/cli/blob/main/pdk-templates.json)\n\n## Call a plugin\n\nThe following will call the `count_vowels` function in the `count_vowels.wasm`\nmodule with the input \"qwertyuiop\":\n\n```shell\nPLUGIN_URL=\"https://github.com/extism/plugins/releases/latest/download/count_vowels.wasm\"\nextism call $PLUGIN_URL count_vowels --input qwertyuiop\n```\n\n\u003e **Note**: The first parameter to `call` can also be a path to a Wasm file on\n\u003e disk.\n\nSee `extism call --help` for a list of all the flags\n\n## Listing libextism versions\n\nTo list the available libextism versions:\n\n```shell\nextism lib versions\n```\n\nTo list the available triples for a version:\n\n```shell\nextism lib versions v0.0.1-alpha\n```\n\n### Install libextism\n\nTo install the latest version of `libextism` to `/usr/local` on macOS and Linux\nand `.` on Windows, this will overwrite any existing installation at the same\npath:\n\n```shell\nsudo PATH=$PATH env extism lib install\n```\n\nTo install to `$HOME/.local`:\n\n```shell\nextism lib install --prefix ~/.local\n```\n\nTo install the latest build from github:\n\n```shell\nsudo PATH=$PATH env extism lib install --version git\n```\n\n### Uninstall libextism\n\nTo uninstall the shared object and header installed in `/usr/local`:\n\n```shell\nsudo PATH=$PATH env extism lib uninstall\n```\n\nOr from another prefix:\n\n```shell\nextism lib uninstall --prefix ~/.local\n```\n\n### Check a libextism installation\n\nThe `lib check` command will print the version of the installed `libextism`\nlibrary:\n\n```shell\nextism lib check\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextism%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fextism%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextism%2Fcli/lists"}