Chinese documentation is provided in README.zh-CN.md.
Practical VS Code utilities for command-driven projects.
You can use the extension without learning the CLI first. The extension reads project.tiny directly and renders it as a visual shortcut panel.
The extension also supports multiple project.tiny files inside one workspace. For example, you can keep one at the repository root and another one under packages/core, then switch the active project from the top Projects view.
Features
Editor CodeLens
When you open a project.tiny file, Tiny Tool Kit adds inline CodeLens actions above runnable shortcut entries:
$(run) Run
$(debug) Debug, only when the shortcut resolves to exactly one executable command
These inline actions are available for both shortcut panels and individual hooks tasks. They always target the currently opened project.tiny file, so they work correctly even when the workspace contains multiple projects.
Command Panel
When a workspace contains project.tiny, the extension shows these tree views:
Projects
Develop
Publish
Tools
Each runnable item can:
- run one or more shell commands
- start a debug terminal when the shortcut resolves to exactly one executable command
- locate the matching entry in
project.tiny when you click a shortcut item
- switch between multiple projects from the top
Projects view when the workspace contains more than one project.tiny
Project items in the top Projects view provide an inline button to open the corresponding project.tiny file directly.
What Is project.tiny?
project.tiny is a YAML file that defines shortcut panels and commands for the current workspace.
Tiny Tool Kit declares a dependency on the Red Hat YAML extension. After installation, it automatically:
- associates
*.tiny with YAML
- contributes a built-in schema for
project.tiny
- enables completion, hover, and validation out of the box
Minimal example:
develop:
actions:
- name: dev
description: Start the development server
command: yarn dev
publish:
actions:
- name: release
command: yarn release
tools:
actions:
- name: lint
command: yarn lint
Rules:
- top-level keys such as
develop, publish, and tools are mapped to the three VS Code views
- each
actions item becomes a tree item
name is the visible label
description, tooltip, and title are optional metadata
command can be a single shell command or a command array
- nested
actions create nested shortcut groups
- top-level custom metadata is allowed and left untouched unless it is one of the known shortcut panels
Multiple Projects in One Workspace
If the workspace contains multiple project.tiny files, the extension does not merge them into one panel. Instead, it keeps one active project at a time:
- use the top
Projects view to switch the active project
- the current project name is shown in each view description
- running, debugging, and opening configuration always use the currently selected project
Command Execution Notes
- Multi-command shortcuts stop when a command exits with a non-zero code.
- Directory changes such as
cd path/to/dir are tracked between commands.
- Other shell state mutations are not guaranteed to be preserved across commands. This includes patterns such as environment variable exports, aliases, shell functions, and profile-dependent shell setup.
- If a shortcut depends on shell session state beyond
cd, prefer wrapping it in a dedicated script and calling that script from project.tiny.
Copy Asset Path
The Copy Asset Path explorer command copies the path relative to configured workspace roots.
Example:
tinyaxis.toolkit.assetPath.enabledRoots = ["assets", "bin"]
- selected file:
assets/logo.png
- copied result:
logo.png
Configuration
{
"tinyaxis.toolkit.assetPath.enabledRoots": ["assets", "bin"]
}
Packaging And Publishing
Build the extension bundle:
yarn --cwd apps/tiny/vscode-extension compile
Package a .vsix file:
yarn --cwd apps/tiny/vscode-extension package:vsix
Publish to the VS Code Marketplace:
VSCE_PAT=<your-token> yarn --cwd apps/tiny/vscode-extension publish:marketplace
Notes:
- the extension publisher is
geequlim
- publishing uses
@vscode/vsce
- set
VSCE_PAT before publishing, or log in with vsce login geequlim in advance