Withcraft
Visual Studio Code extension that brings GitHub Action input metadata directly into workflow files. Hover any uses:
reference to see the action description, declared inputs, and version info. Hover any with: key to see its
description, whether it is required, its default value, and any deprecation notice. Invoke completion inside a with:
block to insert available inputs with sensible defaults.
Works with public GitHub and GitHub Enterprise Server. Local actions referenced with ./... are read from the
workspace.
Quick Start
- Install Withcraft (
goeselt.withcraft) from the Visual Studio Code Extensions view.
- Open a workflow file under
.github/workflows/.
- Hover any
uses: reference or any key inside a with: block.
Example:
- uses: actions/setup-node@v6
with:
node-version: 24
Hovering actions/setup-node@v6 shows the action description, resolved version, and a summary of its declared inputs.

Hovering node-version shows the input description, whether it is required, and its default value.

Pressing completion (Ctrl+Space) inside the with: block suggests the remaining undeclared inputs of the action.

Features
- Hover on
uses: shows the action name, description, declared inputs summary, and resolved version.
- Hover on
with: input keys shows description, required status, default value, and deprecation notice.
- Completion inside
with: blocks suggests undeclared inputs; required inputs appear first.
- Skips inputs already present in the block to avoid duplicates.
- Caches remote action metadata to keep GitHub API usage low.
- Reads local actions from the workspace without caching so edits are reflected immediately.
- Supports sub-action references such as
github/codeql-action/upload-sarif@v4.
- Skips Docker image references (
docker://...) and reusable workflow references by design.
Settings
| Setting |
Default |
Description |
withcraft.enabled |
true |
Enable Withcraft hovers and completions. |
withcraft.hover.enabled |
true |
Enable hovers for uses: entries and with: input keys. |
withcraft.completion.enabled |
true |
Enable completion inside with: blocks. |
withcraft.githubHosts |
["github.com"] |
GitHub hosts to query for remote action metadata, in order. |
withcraft.cache.maxEntries |
1000 |
Maximum number of remote action metadata entries kept in memory. |
Example for a mixed public and GitHub Enterprise Server setup:
"withcraft.githubHosts": [
"github.com",
"github.company.example"
]
For github.com, Withcraft calls https://api.github.com. For GitHub Enterprise Server hosts, it calls
https://<host>/api/v3.
Requirements
- Visual Studio Code
1.120.0 or newer.
- Network access to the configured GitHub hosts.
- Public access to referenced action repositories, or a configured token for private ones.
Use the Withcraft: Set GitHub Token command to store a token per host. Tokens are stored in VS Code's secret storage
and are never written to settings files.
Contributing
See CONTRIBUTING.md and LICENSE.