ソース情報
- リポジトリ
- KrystianJonca/lnai
- ソースの最終更新活動
- 2026年2月1日 17:00
- 検出された SKILL.md の言語
- 英語
- スター
- 243
- フォーク
- 3
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/KrystianJonca/lnai --skill add-tool-pluginコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SOC 職業分類に基づく
SKILL.md を表示中
| name | add-tool-plugin |
| description | Add support for a new AI coding tool |
Guide for adding LNAI support for a new AI coding tool.
Each plugin implements the Plugin interface to transform unified .ai/ config into a tool's native format.
Search the official documentation for the target tool to understand its configuration format:
Update packages/core/src/constants.ts:
TOOL_IDS array (e.g., "newtool")TOOL_OUTPUT_DIRS mapOVERRIDE_DIRS mapCreate packages/core/src/plugins/<tool-name>/:
<tool-name>/
├── index.ts # Plugin implementation
├── types.ts # Tool-specific types (optional)
├── transforms.ts # Transformation functions (optional)
└── index.test.ts # Tests
In index.ts, implement the Plugin interface:
import type { Plugin } from "../types";
import type { OutputFile, UnifiedState, ValidationResult } from "../../types";
import { applyFileOverrides } from "../../utils/transforms";
export const newToolPlugin: Plugin = {
id: "newtool",
name: "New Tool",
async detect(rootDir: string): Promise<boolean> {
// Check if tool's config exists
return false;
},
async import(rootDir: string): Promise<Partial<UnifiedState> | null> {
// Import existing config to unified format
return null;
},
async export(state: UnifiedState, rootDir: string): Promise<OutputFile[]> {
const files: OutputFile[] = [];
// Add AGENTS.md symlink
if (state.agents) {
files.push({
path: ".newtool/AGENTS.md",
type: "symlink",
target: "../.ai/AGENTS.md",
});
}
// Add rules, settings, MCP servers...
return applyFileOverrides(files, rootDir, "newtool");
},
validate(state: UnifiedState): ValidationResult {
const warnings: ValidationWarningDetail[] = [];
const skipped: SkippedFeatureDetail[] = [];
// Add warnings for unsupported features
return { valid: true, errors: [], warnings, skipped };
},
};
In packages/core/src/plugins/index.ts:
import { newToolPlugin } from "./newtool/index";
pluginRegistry.register(newToolPlugin);
Create index.test.ts with tests for export() and validate().
Create apps/docs/src/content/docs/tools/<tool-name>.md documenting:
pnpm lint && pnpm typecheck && pnpm test
.ai/.<tool>/When implementing, refer to:
packages/core/src/plugins/ as examplespackages/core/src/plugins/types.tspackages/core/src/utils/transforms.ts