Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 38 additions & 13 deletions .github/workflows/tessl-publish.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,43 @@
name: Tessl Publish

# Publishes the bun plugin to the Tessl registry as `pleaseai/bun` whenever
# release-please cuts a bun release. release-please tags components as
# `<component>-v<version>` (e.g. `bun-v1.3.0`) using a GitHub App token, so
# the tag push triggers this workflow. The checked-out tag already has the
# bumped version in plugins/bun/.tessl-plugin/plugin.json, so `tessl plugin
# publish` publishes exactly that version.
# Publishes a plugin to the Tessl registry when release-please cuts a release
# for it. release-please tags components as `<component>-v<version>` (e.g.
# `bun-v1.3.0`, `graphite-v2.1.0`) using a GitHub App token, so the tag push
# triggers this workflow. The component name matches the plugin directory under
# plugins/, and the checked-out tag already has the bumped version in
# plugins/<component>/.tessl-plugin/plugin.json, so `tessl plugin publish`
# publishes exactly that version.
#
# Only components that ship a .tessl-plugin/plugin.json are published; tags for
# any other component (apps/web, packages/*, plugins without a Tessl manifest)
# resolve to a missing manifest and the job no-ops.
#
# Requires repository secret TESSL_TOKEN (create via `tessl api-key create`).
# When the secret is absent the job no-ops with a warning instead of failing.
on:
push:
tags:
- 'bun-v*'
- '*-v*'

permissions:
id-token: write
contents: read

jobs:
publish-bun:
name: Publish pleaseai/bun to Tessl
publish:
name: Publish released plugin to Tessl
runs-on: ubuntu-latest
steps:
- name: Check TESSL_TOKEN is configured
- name: Resolve component and check TESSL_TOKEN
id: guard
env:
TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }}
TAG: ${{ github.ref_name }}
run: |
# release-please tags components as <component>-v<version>; strip the
# trailing -v<version> to recover the plugin directory name.
component="${TAG%-v*}"
echo "component=$component" >> "$GITHUB_OUTPUT"
if [ -z "$TESSL_TOKEN" ]; then
echo "::warning::TESSL_TOKEN not configured — skipping Tessl publish"
echo "skip=true" >> "$GITHUB_OUTPUT"
Expand All @@ -39,12 +49,27 @@ jobs:
if: steps.guard.outputs.skip != 'true'
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Set up Tessl CLI
- name: Verify plugin has a Tessl manifest
if: steps.guard.outputs.skip != 'true'
id: manifest
env:
COMPONENT: ${{ steps.guard.outputs.component }}
run: |
if [ -f "plugins/$COMPONENT/.tessl-plugin/plugin.json" ]; then
echo "publish=true" >> "$GITHUB_OUTPUT"
else
echo "::notice::plugins/$COMPONENT has no .tessl-plugin/plugin.json — not a Tessl plugin, skipping"
echo "publish=false" >> "$GITHUB_OUTPUT"
fi

- name: Set up Tessl CLI
if: steps.guard.outputs.skip != 'true' && steps.manifest.outputs.publish == 'true'
uses: tesslio/setup-tessl@25ec223fc0da33b41b8044ff5ab2b85235f4f91e # v2
with:
token: ${{ secrets.TESSL_TOKEN }}

- name: Publish plugin
if: steps.guard.outputs.skip != 'true'
run: tessl plugin publish plugins/bun
if: steps.guard.outputs.skip != 'true' && steps.manifest.outputs.publish == 'true'
env:
COMPONENT: ${{ steps.guard.outputs.component }}
run: tessl plugin publish "plugins/$COMPONENT"
18 changes: 11 additions & 7 deletions .github/workflows/tessl-skill-review.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
name: Tessl Skill Review

# Reviews the use-bun SKILL.md on PRs that touch it using the official
# tesslio/skill-review action, which runs `tessl skill review` on changed
# SKILL.md files and posts the quality scores as a PR comment.
# Reviews changed SKILL.md files on PRs using the official tesslio/skill-review
# action, which runs `tessl skill review` and posts the quality scores as a PR
# comment. The action scans the PR diff for changed SKILL.md files (as
# repo-relative paths) under the `path` root, so `path` is the repo root (`.`)
# and every plugin's skills are covered — not just one. (Passing a sub-directory
# as `path` double-prefixes the repo-relative changed paths and fails with
# "SKILL.md not found at plugins/<dir>/plugins/<dir>/...".)
#
# Auth: the skill-review composite runs tesslio/setup-tessl WITHOUT a token, and
# the tessl CLI authenticates from the TESSL_TOKEN env var — so it is provided at
Expand All @@ -15,15 +19,15 @@ on:
pull_request:
branches: [main]
paths:
- 'plugins/bun/skills/**'
- 'plugins/**/skills/**'

permissions:
contents: read
pull-requests: write # required for the action to post its review comment

jobs:
review-use-bun:
name: Review use-bun skill
review:
name: Review changed skills
runs-on: ubuntu-latest
env:
TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }}
Expand All @@ -46,6 +50,6 @@ jobs:
if: steps.guard.outputs.skip != 'true'
uses: tesslio/skill-review@22e928dd837202b2b1d1397e0114c92e0fae5ead # main (no tagged release)
with:
path: plugins/bun
path: '.'
comment: 'true'
fail-threshold: '0'
72 changes: 72 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ Gemini CLI integration for Claude Code — use Google's Gemini models from withi
### Built-in Plugins

#### Please Plugins (Plugin Recommender)
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fplease-plugins)](https://tessl.io/registry/pleaseai/please-plugins)

Auto-detect project dependencies and recommend matching Claude Code plugins from the pleaseai marketplace.

**Install:** `/plugin install please-plugins@pleaseai` | **Source:** [plugins/please-plugins](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/please-plugins)
Expand All @@ -101,11 +103,15 @@ Auto-approve safe commands, AI-assisted review for the rest.
**Install:** `/plugin install gatekeeper@pleaseai` | **Source:** [plugins/gatekeeper](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/gatekeeper)

#### Cubic
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fcubic)](https://tessl.io/registry/pleaseai/cubic)

AI-powered code review using Cubic CLI to detect bugs, security vulnerabilities, and style issues.

**Install:** `/plugin install cubic@pleaseai` | **Source:** [plugins/cubic](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/cubic)

#### MCP Dev
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmcp-dev)](https://tessl.io/registry/pleaseai/mcp-dev)

Guide for creating high-quality MCP servers with best practices, TypeScript/Python patterns, and evaluation tools.

**Install:** `/plugin install mcp-dev@pleaseai` | **Source:** [plugins/mcp-dev](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/mcp-dev)
Expand Down Expand Up @@ -156,6 +162,8 @@ UnoCSS instant atomic CSS engine, superset of Tailwind CSS.
**Install:** `/plugin install unocss@pleaseai` | **Source:** [plugins/unocss](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/unocss)

#### Web Design
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fweb-design)](https://tessl.io/registry/pleaseai/web-design)

Review UI code for Web Interface Guidelines compliance.

**Install:** `/plugin install web-design@pleaseai` | **Source:** [plugins/web-design](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/web-design)
Expand Down Expand Up @@ -186,6 +194,8 @@ Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript proje
**Install:** `/plugin install antfu@pleaseai` | **Source:** [plugins/antfu](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/antfu)

#### Mastra
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmastra)](https://tessl.io/registry/pleaseai/mastra)

Official agent skills for coding agents working with the Mastra AI framework.

**Install:** `/plugin install mastra@pleaseai` | **Source:** [plugins/mastra](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/mastra)
Expand All @@ -201,6 +211,8 @@ Official agent skills for Prisma ORM — schema design, migrations, queries, and
**Install:** `/plugin install prisma@pleaseai` | **Source:** [plugins/prisma](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/prisma)

#### Better Auth
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fbetter-auth)](https://tessl.io/registry/pleaseai/better-auth)

Better Auth authentication framework skills for JavaScript/TypeScript projects.

**Install:** `/plugin install better-auth@pleaseai` | **Source:** [plugins/better-auth](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/better-auth)
Expand Down Expand Up @@ -231,6 +243,8 @@ Git worktree isolation: injects context at session start and blocks file access
**Install:** `/plugin install worktree@pleaseai` | **Source:** [plugins/worktree](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/worktree)

#### MarkItDown
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmarkitdown)](https://tessl.io/registry/pleaseai/markitdown)

Convert documents (PDF, DOCX, PPTX, images, etc.) to Markdown using Microsoft's MarkItDown MCP server.

**Install:** `/plugin install markitdown@pleaseai` | **Source:** [plugins/markitdown](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/markitdown)
Expand Down Expand Up @@ -311,6 +325,8 @@ Replace port numbers with stable, named local URLs. For humans and agents.
**Install:** `/plugin install portless@pleaseai` | **Source:** [plugins/portless](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/portless)

#### Zod
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fzod)](https://tessl.io/registry/pleaseai/zod)

TypeScript-first schema validation with static type inference — version-aware skill covering Zod v3 and v4 differences (entry points, error formatting, refinements).

**Install:** `/plugin install zod@pleaseai` | **Source:** [plugins/zod](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/zod)
Expand All @@ -322,6 +338,55 @@ Version-aware skill for the Bun JavaScript/TypeScript toolkit — runtime, packa

**Install:** `/plugin install bun@pleaseai` | **Source:** [plugins/bun](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/bun)

#### Graphite
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgraphite)](https://tessl.io/registry/pleaseai/graphite)

Stacked PR workflow with the Graphite CLI (gt) — create stacks, submit, sync, restack, split/squash/fold, track existing branches, and collaborate on shared stacks

**Install:** `/plugin install graphite@pleaseai` | **Source:** [plugins/graphite](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/graphite)

#### Claude MD Management
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fclaude-md-management)](https://tessl.io/registry/pleaseai/claude-md-management)

Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.

**Install:** `/plugin install claude-md-management@pleaseai` | **Source:** [plugins/claude-md-management](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/claude-md-management)

#### Fetch
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Ffetch)](https://tessl.io/registry/pleaseai/fetch)

Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts

**Install:** `/plugin install fetch@pleaseai` | **Source:** [plugins/fetch](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/fetch)

#### Java Development
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fjava-development)](https://tessl.io/registry/pleaseai/java-development)

Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices.

**Install:** `/plugin install java-development@pleaseai` | **Source:** [plugins/java-development](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/java-development)

#### Nuxt i18n
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fnuxt-i18n)](https://tessl.io/registry/pleaseai/nuxt-i18n)

Nuxt i18n internationalization module for locale routing, lazy-loaded translations, SEO, browser detection, and multi-domain setups. Use when working with @nuxtjs/i18n, locale switching, translated routes, or i18n composables.

**Install:** `/plugin install nuxt-i18n@pleaseai` | **Source:** [plugins/nuxt-i18n](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/nuxt-i18n)

#### PortOne
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fportone)](https://tessl.io/registry/pleaseai/portone)

포트원(PortOne) 결제 연동 코드 생성 및 검토 플러그인. V1/V2 API를 지원하며, MCP 서버를 통해 최신 문서와 예시 코드를 활용합니다.

**Install:** `/plugin install portone@pleaseai` | **Source:** [plugins/portone](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/portone)

#### Google Workspace
[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgoogle-workspace)](https://tessl.io/registry/pleaseai/google-workspace)

CLI tool for managing Google Workspace resources dynamically using Discovery APIs.

**Install:** `/plugin install google-workspace@pleaseai` | **Source:** [plugins/google-workspace](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/google-workspace)

## Quick Start

The fastest way to get started — install the marketplace and let the plugin recommender auto-detect what you need:
Expand Down Expand Up @@ -452,6 +517,13 @@ Once the marketplace is added (or files copied), the following plugins are avail
/plugin install portless@pleaseai
/plugin install zod@pleaseai
/plugin install bun@pleaseai
/plugin install graphite@pleaseai
/plugin install claude-md-management@pleaseai
/plugin install fetch@pleaseai
/plugin install java-development@pleaseai
/plugin install nuxt-i18n@pleaseai
/plugin install portone@pleaseai
/plugin install google-workspace@pleaseai
```

## What Are Claude Code Plugins?
Expand Down
12 changes: 12 additions & 0 deletions plugins/better-auth/.tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "pleaseai/better-auth",
"description": "Better Auth authentication framework skills for JavaScript/TypeScript projects",
"version": "1.4.0",
"author": {
"name": "Better Auth",
"url": "https://github.com/better-auth"
},
"skills": [
"skills/use-better-auth"
]
}
7 changes: 7 additions & 0 deletions plugins/better-auth/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# better-auth

[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fbetter-auth)](https://tessl.io/registry/pleaseai/better-auth)

Better Auth authentication framework skills for JavaScript/TypeScript projects

**Install:** `/plugin install better-auth@pleaseai`
12 changes: 12 additions & 0 deletions plugins/claude-md-management/.tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "pleaseai/claude-md-management",
"description": "Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.",
"version": "1.3.1",
"author": {
"name": "Anthropic",
"url": "https://github.com/anthropics"
},
Comment thread
amondnet marked this conversation as resolved.
"skills": [
"skills/claude-md-improver"
]
}
7 changes: 7 additions & 0 deletions plugins/claude-md-management/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# claude-md-management

[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fclaude-md-management)](https://tessl.io/registry/pleaseai/claude-md-management)

Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.

**Install:** `/plugin install claude-md-management@pleaseai`
12 changes: 12 additions & 0 deletions plugins/cubic/.tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "pleaseai/cubic",
"description": "AI-powered code review using Cubic CLI. Detects bugs, security vulnerabilities, and style issues before commits.",
"version": "0.1.0",
"author": {
"name": "Minsu Lee",
"url": "https://github.com/amondnet"
},
"skills": [
"skills/cubic-review"
]
}
7 changes: 7 additions & 0 deletions plugins/cubic/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# cubic

[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fcubic)](https://tessl.io/registry/pleaseai/cubic)

AI-powered code review using Cubic CLI. Detects bugs, security vulnerabilities, and style issues before commits.

**Install:** `/plugin install cubic@pleaseai`
2 changes: 1 addition & 1 deletion plugins/cubic/skills/cubic-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Code Review via Cubic CLI
name: cubic-review
description: Run AI-powered code reviews using Cubic CLI to detect bugs, security vulnerabilities, and style issues in local changes. Use when the user says "review my code," "check my changes for bugs," "run cubic review," "review this diff," "pre-commit check," "find issues before I push," "analyze my branch changes," or "code quality check." Triggers on mentions of cubic, code review, diff review, pre-commit checks, bug detection, and code quality validation.
allowed-tools: Bash, Read, Edit
---
Expand Down
12 changes: 12 additions & 0 deletions plugins/fetch/.tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "pleaseai/fetch",
"description": "Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts",
"version": "1.0.0",
"author": {
"name": "fetch-mcp project",
"url": "https://github.com/zcaceres/fetch-mcp"
},
"skills": [
"skills/fetch"
]
}
7 changes: 7 additions & 0 deletions plugins/fetch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# fetch

[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Ffetch)](https://tessl.io/registry/pleaseai/fetch)

Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts

**Install:** `/plugin install fetch@pleaseai`
2 changes: 1 addition & 1 deletion plugins/fetch/skills/fetch/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Fetching Web Content
name: fetch
description: Fetch web content in multiple formats using fetch MCP tools. Use when WebFetch fails with 403/access errors, when fetching HTML pages, JSON APIs, plain text, readable article content, or YouTube transcripts. Triggers on mentions of fetching URLs, web scraping, reading web pages, downloading content, or accessing online resources.
allowed-tools: mcp__fetch__fetch_html, mcp__fetch__fetch_markdown, mcp__fetch__fetch_txt, mcp__fetch__fetch_json, mcp__fetch__fetch_readable, mcp__fetch__fetch_youtube_transcript
---
Expand Down
Loading
Loading