---
title: 快速开始
description: 创建、运行、打包并校验一个强类型 Lenso Plugin。
---

在这个自包含 Quickstart 中，你会创建一个普通 Plugin，通过真实 Execution Adapter
调用它，并生成一个通过校验的 `.lenso-plugin` Bundle。完成这条路径不需要产品 Host，
也不依赖 Catalog 条目。

Rust 可由同一份源码生成可移植 Wasm 与可信 Process 实现；Bun 使用生成的
`@lenso/bun` Runtime Lowering。

## 前置条件

- 默认脚手架需要 Rust Stable 与 `wasm32-unknown-unknown` Target；
- 只有选择 `--runtime bun` 时才需要 Bun 1.2.21 或更新版本。

从 npm 安装 CLI：

```sh
npm install -g @lenso/cli
lenso --version
```

## 创建并运行 Plugin

下面两条路径只选一条，并从尚不存在 `example.echo` 的目录开始执行。

### Rust

```sh
lenso plugin new example.echo
cd example.echo
lenso plugin check
lenso plugin dev \
  --implementation auto \
  --operation execute \
  --request-json '{"name":"example.echo","arguments_json":"{\"text\":\"hello\"}"}'
lenso plugin pack
cd ..
```

### Bun / TypeScript

```sh
lenso plugin new example.echo --runtime bun
cd example.echo
lenso plugin check
lenso plugin dev \
  --implementation auto \
  --operation execute \
  --request-json '{"name":"example.echo","arguments_json":"{\"text\":\"hello\"}"}'
lenso plugin pack
cd ..
```

在 Bun 路径中，业务代码只需编辑 `example.echo/src/plugin.ts`。生成的 Entrypoint
持有 Descriptor 投影、开发调用与正式 Bun Server；业务代码不实现 JSON-RPC 或
进程生命周期。

两条路径都可以在同一个 `plugin dev` 命令中追加 `--watch`，并保留 Operation 与
Request 参数，以便源码变化后重新构建并调用。开发构建保持未优化；`plugin pack`
执行 Release 构建，用安装时相同的验证器重新打开生成的 `.lenso-plugin`
Archive，并打印 `dist/` 下经过校验的路径。两条路径随后都会回到父目录，因此 Bundle
位于 `./example.echo/dist/example.echo-0.1.0.lenso-plugin`。到这里，本 Quickstart 已完成；
它不会假定 Catalog 中存在尚未发布的条目，也不会假定你的机器上已经有某个
产品 Host。

## 将 Bundle 接入 App

App 由一个精确 Host Build、与它匹配的 Host Catalog 以及可见 Plugin Root 派生。
这些 Artifact 归产品 Host 所有，并非通用 CLI 的内置资源。拿到匹配的 Artifact 后，
按[修改第一个 App](/docs/zh/core/first-app-change)初始化 Workspace、加入本地 Bundle、
检查 Derived App、运行并移除改动。Catalog 安装是可选路径，并且只适用于所选
Catalog 实际返回的 Release。

设置或解析失败时运行 `lenso doctor`；默认输出适合人阅读，`--json` 输出稳定结构。

继续阅读[修改第一个 App](/docs/zh/core/first-app-change)、
[编写 Plugin](/docs/zh/core/plugin-authoring)或
[编写 Bun Plugin](/docs/zh/core/bun-plugin-authoring)。
