Agent skill

Tsed CLI

by tsedio in tsedio/tsed

Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary…

MITAuto-check passedDevelopment

Install Tsed CLI

skills CLI
$ npx skills add tsedio/tsed --skill tsed-cli -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tsedio/tsed tsed-cli --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tsed/skills/tsed-cli .claude/skills/tsed-cli && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tsed-cli
GitHub stars
3.1k
Token cost
~2.7k tokens
SKILL.md length
975 words
Files
4 (incl. references)
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary…

  • Works in 5 steps: Read the project preferences first → Choose the channel → MCP flow → …
  • Creating a Ts.ED project
  • SKILL.md covers 1. Read the project…, 2. Choose the channel, 3. MCP flow and 4. Shell fallback, plus 3 more sections
  • Calls npx; reaches cli.tsed.dev

What it does

Tsed CLI is an agent skill from tsedio/tsed. Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary (tsed init, generate, template, add, run, update, dev, build). Use when creating a Ts.ED project, adding a controller, service, middleware, model, interceptor, pipe, decorator or custom template, when package.json has a "tsed" key or @tsed/cli, when a .templates/ directory exists, or on errors ECWDNOTSET…

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `references/init-options.md` and `references/templates.md`).

It sits in Development, covering Project scaffolding. It works with npm and Model Context Protocol. The repository describes itself as: :triangularruler: Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline… The licence is MIT.

When your agent uses it

  • Creating a Ts.ED project
  • Adding a controller
  • Custom template
  • Package.json has a tsed key

Example prompts

  • “Use the tsed-cli skill to scaffold Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace…”
  • “/tsed-cli”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Read the project preferences first
  2. Choose the channel
  3. MCP flow
  4. Shell fallback
  5. Custom templates

What it can do on your machine

Read from SKILL.md and the folder at commit 5bea797. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • cli.tsed.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tsed CLI loads about 2.7k tokens when it runs, and up to ~9.8k if it reads all its reference files. Until then it costs about 144 tokens; SKILL.md has 975 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~144
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tsedio/tsed at commit 5bea797, republished under its MIT licence (© tsedio). 975 words, ~2,674 tokens.

Download SKILL.mdSave it as .claude/skills/tsed-cli/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
tsed-cli
description
Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary (tsed init, generate, template, add, run, update, dev, build). Use when creating a Ts.ED project, adding a controller, service, middleware, model, interceptor, pipe, decorator or custom template, when package.json has a "tsed" key or @tsed/cli, when a .templates/ directory exists, or on errors E_CWD_NOT_SET, E_PROJECT_NOT_INITIALIZED, E_TEMPLATE_UNKNOWN, E_ARGS_INVALID.

Scaffold and generate with the Ts.ED CLI

Generate boilerplate with the CLI so file names, directories and class names match the project preferences. Hand-write a file only when no template fits.

References, loaded on demand:

1. Read the project preferences first

Preferences live under the tsed key of the application's package.json, for example "tsed": {"convention": "conv_default", "architecture": "arc_default", "platform": "express", "runtime": "node", "packageManager": "npm"}.

KeyValuesEffect
conventionconv_default, angularFile name: ProductController.ts vs product.controller.ts
architecturearc_default, featuresrc/controllers/... vs a folder taken from the name (users/User)
platformexpress, koa, fastifyAdapter package to import
runtimenode, vite, bun, bun-vite, babel, webpackDev/build scripts
packageManagernpm, yarn, yarn_berry, pnpm, bunInstall command
  1. Read these values before creating or renaming any file, even by hand.
  2. The exported class name is PascalCase with the type suffix in both conventions (ProductController); only the file name changes.
  3. A missing tsed.packageManager means the project is not initialized for the CLI. Do not generate; go to section 3 or ask the user.
  4. Use the project's package manager for every install or script command.

2. Choose the channel

  1. If an MCP server named tsed is connected (tools set-workspace, generate-file, ...), use section 3.
  2. Otherwise use the shell (section 4). Prefer the locally installed binary: npx tsed ... inside a project that has @tsed/cli in devDependencies.
  3. To offer the MCP server to the user, give this exact declaration. Node.js >= 22 is required.
json
{
  "mcpServers": {
    "tsed": {
      "command": "npx",
      "args": ["-y", "-p", "@tsed/cli", "tsed", "mcp"]
    }
  }
}
  • stdio is the default transport. tsed mcp --http serves streamable HTTP on POST /mcp, port PORT (default 3000).
  • Do not write npx -y @tsed/cli mcp: it fails on a first install because the package name is not the binary name.
  • Do not reference a tsed-mcp binary. It does not exist.

3. MCP flow

  1. Call set-workspace with {cwd} (absolute path preferred). It resolves the nearest package.json and returns cwd, pkg and preferences.
  2. Read resource tsed://project/info and check isInitialized. preferences there omits architecture; read it from pkg.tsed.architecture.
  3. Not initialized, new project wanted:
    1. Read resource tsed://init/options (instructions plus the JSON schema).
    2. Ask the user for platform, architecture, convention, features, runtime and package manager. Show labels, send enum values.
    3. Call init-project with {cwd, platform, architecture, convention, features, runtime, packageManager, projectName?, tsedVersion?}.
  4. Initialized, new file wanted:
    1. list-templates with an optional {search} to find the template id.
    2. get-template with {id} to read the extra properties schema.
    3. generate-file with {id, name, properties}. Example: {"id": "controller", "name": "Product", "properties": {"route": "/products", "directory": "rest"}}.
    4. Read files and symbolPath from the result, then edit the generated file.
  5. Resource tsed://server/info reports the CLI version and whether the workspace is a project; use it for diagnostics.
Error codeReturned byFix
E_CWD_NOT_FOUNDset-workspaceConfirm the folder with the user, then init-project with that cwd
E_CWD_NOT_SETgenerate-fileCall set-workspace first
E_PROJECT_NOT_INITIALIZEDgenerate-fileWrong workspace, or run init-project
E_PROJECT_ALREADY_INITIALIZEDinit-projectUse generate-file, or pick another folder
E_TEMPLATE_UNKNOWNget-template, generate-fileTake the id from list-templates
E_ARGS_INVALIDgenerate-fileRe-read get-template; fix properties (details.errors)

Do not call init-project without the user's choices. Do not retry a failed tool call with the same arguments.

4. Shell fallback

Global options on every command: -r, --root-dir <path>, --verbose. Run commands non-interactively; an agent cannot answer prompts.

sh
# New project (asks nothing with --skip-prompt)
npx -p @tsed/cli tsed init my-api --skip-prompt --platform express --arch arc_default \
  --convention conv_default --runtime node --package-manager npm \
  --features doc doc:swagger testing testing:vitest linter linter:oxlint

# Generate: tsed generate|g [type] [name]
npx tsed g controller Product --route /products --directory rest
npx tsed g middleware Auth --middleware-position before
npx tsed g decorator Roles --template-type endpoint

npx tsed template my-template --from new  # scaffold .templates/my-template.template.ts
npx tsed add @tsed/cli-plugin-prisma # install a CLI plugin
npx tsed run <command>               # run a command from src/bin/index.ts
npx tsed update                      # interactive version picker
npx tsed dev                         # Vite runtimes only: watch src/index.ts
npx tsed build                       # Vite runtimes only: vite build
  1. Pass both type and name, plus the template's options, or generate opens a prompt.
  2. tsed update always prompts for the target version. Ask the user to run it, or edit the @tsed/* versions in package.json and install.
  3. tsed dev and tsed build exist only for the vite and bun-vite runtimes and need vite.config.ts. For other runtimes use the package.json scripts written by tsed init.
  4. tsed init-options prints the init JSON schema; use it when the feature list in the reference may be outdated.
Show full SKILL.md (337 more words)Show less

5. Custom templates

  1. Scaffold with tsed template <name> --from new (without --from the command prompts). The file lands in .templates/<name>.template.ts.
  2. Every .ts file under .templates/ is loaded at startup; a custom template replaces a built-in one with the same id and is labelled (custom).
  3. Shape:
ts
import {defineTemplate} from "@tsed/cli";
import {s} from "@tsed/schema";

export default defineTemplate({
  id: "use-case",
  label: "Use case",
  description: "Create an application use case in src/use-cases.",
  fileName: "{{symbolName}}.use-case",
  outputDir: "{{srcDir}}/use-cases",
  schema: s.object({entity: s.string().description("Entity handled by the use case")}),
  render(symbolName, context) {
    return `import {Injectable} from "@tsed/di";\n\n@Injectable()\nexport class ${symbolName} {}\n`;
  }
});
  1. Options: id, label, outputDir and render are required; description, fileName, ext (default ts, null for none), hidden, preserveCase, preserveDirectory, schema, prompts, hooks, type are optional. render() returns the file content, or undefined to skip the file.
  2. schema is what get-template returns and what generate-file validates properties against. Always declare it for templates used by agents.
  3. Check for an existing .templates/ directory before generating: the project may override controller, service, etc.

Depth: https://cli.tsed.dev/llms.txt.

Pitfalls

  • The CLI docs show tsed generate service --name Logger and tsed generate template. Both are wrong: the name is the second positional argument, and the command is tsed template.
  • --features is variadic: separate values with spaces, and use full values (doc:swagger, orm:prisma), not swagger or prisma.
  • list-templates returns every visible template when search matches nothing. Check the returned ids instead of assuming a match.
  • Hidden templates (project files such as server, vitest.config) are not listed but are accepted by get-template and generate-file. Do not regenerate them in an existing project.
  • A name equal to prisma forces the prisma.service template.
  • With architecture: "feature", the base directory (controllers, services) is dropped; put the feature folder in the name: users/User.
  • passportjs is offered only when the platform is express.
  • Generated code is a starting point. Read the sibling skill for the file type (tsed-controllers, tsed-di, tsed-middlewares, tsed-models, tsed-exceptions, tsed-testing) before filling it in.

Checklist

  • package.json tsed preferences read before any file was created.
  • Generator used (MCP generate-file or tsed generate) for every file type that has a template.
  • Init options confirmed by the user before init-project or tsed init.
  • Generated paths taken from the tool output, not assumed.
  • MCP declaration, if suggested, uses npx -y -p @tsed/cli tsed mcp.
  • No interactive command left waiting for input.

© tsedio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in plugins/tsed/skills/tsed-cli of tsedio/tsed.

  • SKILL.md
  • agents/openai.yaml
  • references/init-options.md
  • references/templates.md

Open the folder on GitHubat commit 5bea797

Compare with similar skills

Tsed CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tsed CLI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tsed CLI this skilltsedio/tsed3.1k—~2.7kAutomated safety check: PassMIT
Diag Harnessruvnet/metaharness688—~835Automated safety check: PassMIT
MCP Server Trello Releasedelorenj/mcp-server-trello446—~3.5kAutomated safety check: PassMIT
Appbuilder Project Initadobe/skills195—~6.4kAutomated safety check: NotesApache-2.0
Create Harnessruvnet/metaharness688—~777Automated safety check: PassMIT
Add Integrationindranilbanerjee/digital-marketing-pro8541 repos~1.8kAutomated safety check: NotesMIT

Similar skills

  • Diag Harness

    ruvnet/metaharness

    Kernel-version skew check (ADR-027). An agent skill from ruvnet/metaharness.

    688 GitHub stars~835 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • MCP Server Trello Release

    delorenj/mcp-server-trello

    Canonical build → release → tag → publish procedure for the @delorenj/mcp-server-trello repo.

    446 GitHub stars~3.5k tokensUpdated 13 days ago
    DevelopmentAuto-check passed
  • Initialize an Adobe App Builder project end-to-end and prepare the machine to build one.

    195 GitHub stars~6.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • Create Harness

    ruvnet/metaharness

    Scaffold your own focused AI agent harness — pick host (Claude Code, Codex, pi.dev, Hermes), template, agents, skills, and ship a npm-publishable harness with its own npx CLI.

    688 GitHub stars~777 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Add Integration

    indranilbanerjee/digital-marketing-pro

    Walk through adding a custom MCP server integration to the plugin — searches npm for an existing MCP package (or scaffolds a custom server from the plugin's guide), generates the exact .mcp.json…

    854 GitHub starsUsed in 1 repo~1.8k tokens
    Agent WorkflowsAuto-check: notes
  • Init Tauri App

    glebis/claude-skills

    Scaffold a new Tauri v2 project with the cenno/cull house conventions — delegates boilerplate to npm create tauri-app, then layers an opinionated core plus opt-in modules (CLI+MCP, SQLite…

    388 GitHub stars~1.5k tokensUpdated 11 days ago
    MobileAuto-check passed

More from tsedio/tsed

All 19 skills in this repo
  • Create a production-ready Ts.ED platform adapter for a new HTTP framework or runtime, such as Hono, Elysia, Bun.serve, or a Node framework.

    3.1k GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check passed
  • Configure and bootstrap a Ts.ED v8 server - the @Configuration decorator or configuration() on the Server class, PlatformExpress/PlatformKoa/PlatformFastify.bootstrap, server options (mount…

    3.1k GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check: notes
  • Tsed Di

    tsedio/tsed

    Declare, inject and scope Ts.ED v8 providers and wire lifecycle hooks - @Injectable, @Module, @Controller, @Inject, the functional API (inject, injectMany, lazyInject, constant, refValue…

    3.1k GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check passed
  • Tsed Docs

    tsedio/tsed

    Locates authoritative Ts.ED v8 documentation and API reference instead of guessing framework APIs.

    3.1k GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • Tsed Logger

    tsedio/tsed

    Configure and use logging in a Ts.ED v8 application with @tsed/logger v8.

    3.1k GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check passed
  • Tsed MCP Server

    tsedio/tsed

    Expose Model Context Protocol (MCP) tools, resources and prompts from a Ts.ED v8 application with @tsed/platform-mcp, over the application's HTTP endpoint or as a standalone stdio / Streamable HTTP…

    3.1k GitHub stars~2.8k tokensUpdated 2 days ago
    Auto-check passed

Questions about Tsed CLI

What does Tsed CLI do?

Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary…. Tsed CLI is an agent skill from tsedio/tsed.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary (tsed init, generate, template, add, run, update, dev, build).

When should I use Tsed CLI?

Tsed CLI fits situations like: creating a Ts.ED project; adding a controller; custom template; package.json has a tsed key.

How do I install Tsed CLI in Claude Code?

Run `npx skills add tsedio/tsed --skill tsed-cli -a claude-code`. Or copy the skill folder (plugins/tsed/skills/tsed-cli in tsedio/tsed) into .claude/skills/tsed-cli in your project. Claude Code loads it when a task matches its description.

How do I install Tsed CLI in Codex?

Run `npx skills add tsedio/tsed --skill tsed-cli -a codex`. Or copy the skill folder (plugins/tsed/skills/tsed-cli in tsedio/tsed) into .agents/skills/tsed-cli in your project. Codex loads it when a task matches its description.

Can I use Tsed CLI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tsedio/tsed --skill tsed-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tsed-cli, .gemini/skills/tsed-cli, .github/skills/tsed-cli and .opencode/skills/tsed-cli in your project.

What does Tsed CLI need to run?

Going by SKILL.md and its folder, Tsed CLI needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Tsed CLI access the network?

SKILL.md names 1 domain. In commands or code: cli.tsed.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Tsed CLI safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tsed CLI use?

Tsed CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tsed CLI use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.2k tokens, read only when the agent opens those files.

What are the alternatives to Tsed CLI?

Skills that share tags, products or a category with Tsed CLI: Diag Harness (ruvnet/metaharness, 688 stars), MCP Server Trello Release (delorenj/mcp-server-trello, 446 stars), Appbuilder Project Init (adobe/skills, 195 stars) and Create Harness (ruvnet/metaharness, 688 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tsed CLI?

tsedio (a GitHub organization) maintains it in tsedio/tsed, which has 3,087 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 5, 2026.

Source: tsedio/tsed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.