Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

honesthonest 搜索

Agent Skill

honest 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

329

周安装

14

GitHub Stars

1

下载量

115
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:honest(honest 搜索)
来源仓库:https://github.com/honestjs/skills
仓库路径:skills/honest
安装命令:
npx skills add https://github.com/honestjs/skills --skill honest
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/honestjs/skills --skill honest

简介

用于查找、检索和筛选相关信息。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

  • 适合根据关键词快速定位候选结果。
  • 通过 GitHub 仓库安装,需确认权限范围。
  • 可能触发联网或外部服务调用。honest 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 建议结合项目场景验证结果准确性。

SKILL.md

Honest Skill

Build Honest.js apps with CLI, decorators, modules, and DI. Honest is a TypeScript-first web framework on Hono with a Nest-like architecture.

Setup

Using Honest CLI

bun add -g @honestjs/cli
honestjs new my-project   # aliases: honest, hnjs
cd my-project
bun dev

Manual setup

bun add honestjs hono reflect-metadata

Bootstrap (entry file):

import 'reflect-metadata'
import { Application } from 'honestjs'
import { AppModule } from './app.module'

const { app, hono } = await Application.create(AppModule, {
	routing: { prefix: 'api', version: 1 },
})

export default hono

Always import reflect-metadata once before any Honest decorators. Export the hono instance for your server (e.g. Cloudflare Workers, Node, Bun).

CLI

  • New project: honestjs new <project-name> - options: -t|--template (name or local path: ./path, ~/path), -p|--package-manager, --typescript, --eslint, --prettier, --docker, --git, --install, -y|--yes, --offline, --refresh-templates
  • List templates: honestjs list - -j|--json, -c|--category, -t|--tag, -l|--local <path> (list from local repo or single template)
  • Info: honestjs info - -l|--local <path> (show templates from local)
  • Generate: honestjs generate <schematic> <name> (alias g) - schematics: controller|c, service|s, module|m, view|v, middleware|c-m, guard|c-g, filter|c-f, pipe|c-p. Options: -p|--path, --flat, --force (overwrite existing files), --skip-import, --export

Prefer honestjs new for new apps and honestjs generate for adding controllers, services, modules, guards, pipes, or filters.

Local templates: Use a local path for --template to scaffold from a local templates repo (directory with templates.json) or single template (directory with template.json + files/). Examples: honestjs new my-app -t./templates, honestjs new my-app -t./templates/barebone, honestjs list --local./templates.

Application and routing

  • Create app: Application.create(RootModule, options) returns {app, hono}.
  • Routing: routing: {prefix?: string, version?: number | VERSION_NEUTRAL | number[]}

- e.g. prefix: 'api', version: 1/api/v1/....

  • Global components: components: {middleware?, guards?, pipes?, filters?} - applied to all routes.
  • Plugins: plugins?: PluginEntry[] - each entry can be a plain plugin or {plugin, name?, preProcessors?, postProcessors?}. Processors receive (app, hono, ctx) where ctx is app.getContext() (application context). Order: preProcessors → beforeModulesRegistered; afterModulesRegistered → postProcessors. Multiple plugins run in plugins array order.
  • Custom handlers: onError?, notFound? on options.
  • Debug/strict: debug: {routes?, plugins?, pipeline?, di?, startup?}, strict: {requireRoutes?}, deprecations: {printPreV1Warning?} - see Configuration.
  • Hono access: app.getApp() for the underlying Hono instance; app.getRoutes() for route info.
  • Startup validations: duplicate method+path routes fail at registration; strict mode can fail startup when zero routes are registered.
  • Application context (registry): app.getContext() - app-scoped key-value store for the whole app (bootstrap, services, any code with app). Use get<T>(key), set<T>(key, value), has(key), delete(key), keys(). Namespace keys (e.g. app.config, rpc.artifact, openapi.spec). Use for pipeline/config or shared data that outlives a request. Not Hono request context: that is per-request and injected via @Ctx() (request, response, env, request-scoped variables).

Modules and DI

  • Module: @Module({controllers?, services?, imports?}) - list controller/service classes and imported modules.
  • Service: @Service() - marks a class as injectable singleton; inject via constructor in controllers or other services.
  • Current DI shape: constructor injection with concrete class types.
@Module({
	controllers: [UsersController],
	services: [UsersService],
	imports: [OtherModule],
})
class UsersModule {}

Controllers and routes

  • Controller: @Controller(route?) - base path for all handlers in the class.
  • HTTP methods: @Get(path?), @Post(path?), @Put(path?), @Delete(path?), @Patch(path?), @Options(path?), @All(path?) - path is optional (default '').

Parameter decorators: use on handler arguments.

DecoratorPurpose
@Body(key?)Request body (JSON); optional key to get one property
@Param(name?)Route param(s)
@Query(name?)Query param(s)
@Header(name?)Header(s)
@Req() / @Request()Hono request
@Res() / @Response()Hono response
@Ctx() / @Context()Hono context
@Var(name) / @Variable(name)Context variable

Example:

@Controller('users')
class UsersController {
	@Get(':id')
	getOne(@Param('id') id: string, @Ctx() ctx: Context) {
		return ctx.json({ id })
	}

	@Post()
	async create(@Body() body: CreateUserDto) {
		return { created: body }
	}
}

Notes:

  • @Body() is safe to use multiple times in the same handler (request JSON is reused per request).
  • Returning a native Response from a handler is supported and passed through directly.

Pipeline

Apply at class or method level:

  • UseMiddleware(...middleware) - runs before the handler.
  • UseGuards(...guards) - determines if the request is allowed.
  • UsePipes(...pipes) - transform input before the handler.
  • UseFilters(...filters) - handle exceptions for the controller/method.

Same pattern as Nest: class-level applies to all methods; method-level overrides or adds.

Ecosystem

@honestjs/rpc-plugin

bun add @honestjs/rpc-plugin
  • Typed RPC client - analyzes HonestJS controllers and generates a type-safe TypeScript client. Register: plugins: [RPCPlugin] or plugins: [new RPCPlugin(options)].
  • Options: controllerPattern (glob for controller files), tsConfigPath, outputDir (default ./generated/rpc), generateOnInit (default true), generators (optional array of custom generators), mode (strict/best-effort), logLevel (silent/error/warn/info/debug), customClassMatcher (optional controller discovery override), failOnSchemaError, failOnRouteAnalysisWarning. Use controllerPattern if controllers live outside the default src/modules/*/*.controller.ts.
  • Generators: when generators is omitted, plugin uses built-in TypeScriptClientGenerator; when defined, only provided generators run.
  • Generated client: ApiClient with controller-namespaced methods; call with {params?, query?, body?, headers?}. Use new ApiClient(baseUrl, {fetchFn?}) for custom fetch (testing, retries, interceptors). setDefaultHeaders() for auth. Errors via ApiError.
  • Manual generation: generateOnInit: false then await rpcPlugin.analyze({force?: boolean, dryRun?: boolean}) when needed. dryRun: true runs analysis without generating client files. Controllers should use @Body(), @Param(), @Query() with typed DTOs/interfaces for best client inference.
  • OpenAPI/Swagger: RPC plugin does not generate OpenAPI specs. It publishes routes/schemas artifact to app context (default key: rpc.artifact) with artifactVersion: "1". API Docs plugin defaults to that key - use new ApiDocsPlugin() with RPC, or pass artifact for a custom key or direct {artifactVersion?, routes, schemas} object.
  • Diagnostics output: plugin writes rpc-diagnostics.json in output dir (mode, cache status, warnings, counts).

@honestjs/api-docs-plugin

bun add @honestjs/api-docs-plugin
  • OpenAPI + Swagger UI - generates OpenAPI spec from an artifact and serves JSON + Swagger UI. Register: plugins: [new ApiDocsPlugin()] or plugins: [new ApiDocsPlugin(options)]. With RPC, artifact defaults to 'rpc.artifact' so no options are needed.
  • Artifact source: artifact is optional (default: context key 'rpc.artifact'). Can pass another context key or a direct object {routes, schemas}. Put the producer plugin (e.g. RPCPlugin) before ApiDocsPlugin in the plugins array when using a context key.
  • Options: title, version, description, servers (OpenAPI metadata); openApiRoute (default /openapi.json), uiRoute (default /docs), uiTitle (default 'API Docs'), reloadOnRequest (default false), onOpenApiRequest and onUiRequest (optional auth hook points).
  • Programmatic: fromArtifactSync(artifact, options) and write(spec, path) for generating spec files; types: OpenApiArtifactInput, OpenApiDocument, OpenApiGenerationOptions.
  • Artifact contract: when artifactVersion exists, supported value is "1"; unsupported versions fail with explicit error.

@honestjs/middleware

bun add @honestjs/middleware
  • Application config: components: {middleware: [new LoggerMiddleware(), new CorsMiddleware({origin: '...'}), new SecureHeadersMiddleware()]}.
  • Wrap Hono middleware: new HonoMiddleware(poweredBy()) or new HonoMiddleware(async (c, next) => {...}).

@honestjs/pipes

bun add @honestjs/pipes
  • PrimitiveValidationPipe - validates and transforms primitive types (String, Number, Boolean) on route params/query/body. Register globally: components: {pipes: [new PrimitiveValidationPipe()]}.

@honestjs/class-validator-pipe

bun add @honestjs/class-validator-pipe
  • ClassValidatorPipe - validates and transforms DTOs with class-validator and class-transformer. Define DTOs with decorators (@IsString(), @IsEmail(), @MinLength(), @IsOptional(), etc.), then register: components: {pipes: [new ClassValidatorPipe()]}. Use @Body() with the DTO type in handlers.

http-essentials

bun add http-essentials
  • Status/phrase: HttpStatus.OK, HttpPhrase.NOT_FOUND, httpPhraseByStatus, httpStatusByPhrase.
  • Exceptions: NotFoundException, BadRequestException, UnauthorizedException, etc. - throw in handlers or use in filters; include default messages and custom message arg.

Use in guards and exception filters for consistent HTTP responses.

MVC and views

HonestJS supports server-side rendered views with Hono JSX. Use the mvc template (honestjs new my-app -t mvc) for full-stack apps. Other templates: barebone, blank. Use barebone and enable RPC / API docs options for OpenAPI and type-safe client generation. Views use @View(), @Page(), Layout, and JsxRendererMiddleware - see MVC docs.

Guidelines

  • Use honestjs new for new projects; use honestjs generate for controllers, services, modules, guards, pipes, filters. Use --force to overwrite existing files.
  • Always import 'reflect-metadata' once at entry before any Honest code.
  • Export hono from the entry used by your server (Worker, Node, Bun).
  • Honest is pre-v1: API may change; avoid relying on undocumented behavior.
  • For Hono-specific behavior (middleware, adapters), use app.getApp() and the Hono API.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.64%
按下载量换算42

Claude

28.47%
按下载量换算33

Cursor

21.08%
按下载量换算24

Gemini CLI

10.64%
按下载量换算12

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills