mirror of
https://github.com/railly/agentfiles.git
synced 2026-07-22 06:12:56 +00:00
feat: rename to Agentfiles, add release files
- Rename plugin ID from obsidian-agent-skills to agentfiles - Add versions.json, LICENSE (MIT), README.md - Update all class names and display text
This commit is contained in:
parent
7306bddb0a
commit
b15648d55e
9 changed files with 99 additions and 22 deletions
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2026 Railly Hugo
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
53
README.md
Normal file
53
README.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Agentfiles
|
||||
|
||||
Discover, organize, and edit AI agent skills, commands, and agents across Claude Code, Cursor, Codex, Windsurf, and more — from inside Obsidian.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-tool discovery** — Scans 13 tools: Claude Code, Cursor, Windsurf, Codex, Copilot, Amp, OpenCode, Aider, and more
|
||||
- **Three-column view** — Sidebar filters, skill list with search, and detail panel with markdown preview
|
||||
- **Built-in editor** — Edit skills in place with Cmd+S save
|
||||
- **Real-time file watching** — Automatically detects changes to skill files
|
||||
- **Full-text search** — Search across skill names, descriptions, and content
|
||||
- **Frontmatter metadata** — View parsed YAML properties at a glance
|
||||
- **Token estimation** — See character count and estimated token usage per skill
|
||||
- **Tool logos** — Real SVG logos for each supported coding agent
|
||||
- **Favorites & collections** — Organize skills your way
|
||||
- **Symlink deduplication** — Same skill installed in multiple tools shows once
|
||||
|
||||
## Supported tools
|
||||
|
||||
| Tool | Skills | Commands | Agents |
|
||||
|------|--------|----------|--------|
|
||||
| Claude Code | `~/.claude/skills/` | `~/.claude/commands/` | `~/.claude/agents/` |
|
||||
| Cursor | `~/.cursor/skills/` | | `~/.cursor/agents/` |
|
||||
| Codex | `~/.codex/skills/` | | `~/.codex/agents/` |
|
||||
| Windsurf | `~/.codeium/windsurf/memories/` | | |
|
||||
| Copilot | `~/.copilot/skills/` | | |
|
||||
| Amp | `~/.config/amp/skills/` | | |
|
||||
| OpenCode | `~/.config/opencode/skills/` | | |
|
||||
| Global | `~/.agents/skills/` | | |
|
||||
|
||||
## Installation
|
||||
|
||||
Search **Agentfiles** in Obsidian's Community plugins browser, or install manually:
|
||||
|
||||
1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](https://github.com/Railly/obsidian-agent-skills/releases)
|
||||
2. Create `~/.obsidian/plugins/agentfiles/` in your vault
|
||||
3. Copy the three files into that folder
|
||||
4. Enable the plugin in Settings > Community plugins
|
||||
|
||||
## Usage
|
||||
|
||||
1. Click the CPU icon in the ribbon, or run **Agentfiles: Open Agentfiles** from the command palette
|
||||
2. Browse skills by tool or type in the sidebar
|
||||
3. Click any skill to preview its content
|
||||
4. Click the pencil icon to edit, Cmd+S to save
|
||||
|
||||
## Desktop only
|
||||
|
||||
This plugin requires desktop Obsidian (macOS, Windows, Linux) because it reads files outside your vault.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
2
main.js
2
main.js
File diff suppressed because one or more lines are too long
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"id": "obsidian-agent-skills",
|
||||
"name": "Agent Skills",
|
||||
"id": "agentfiles",
|
||||
"name": "Agentfiles",
|
||||
"version": "0.1.0",
|
||||
"minAppVersion": "1.4.11",
|
||||
"description": "Discover, organize, and edit AI coding agent skills across Claude Code, Cursor, Codex, Windsurf, and more.",
|
||||
"description": "Discover, organize, and edit AI agent skills, commands, and agents across Claude Code, Cursor, Codex, Windsurf, and more.",
|
||||
"author": "Railly Hugo",
|
||||
"authorUrl": "https://railly.dev",
|
||||
"isDesktopOnly": true
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "obsidian-agent-skills",
|
||||
"name": "agentfiles",
|
||||
"version": "0.1.0",
|
||||
"description": "AI Skills Manager for Obsidian",
|
||||
"main": "main.js",
|
||||
|
|
|
|||
18
src/main.ts
18
src/main.ts
|
|
@ -1,12 +1,12 @@
|
|||
import { Plugin, type WorkspaceLeaf } from "obsidian";
|
||||
import { AgentSkillsView, VIEW_TYPE } from "./views/main-view";
|
||||
import { Plugin } from "obsidian";
|
||||
import { AgentfilesView, VIEW_TYPE } from "./views/main-view";
|
||||
import { SkillStore } from "./store";
|
||||
import { SkillWatcher } from "./watcher";
|
||||
import { getWatchPaths } from "./scanner";
|
||||
import { AgentSkillsSettingTab } from "./settings";
|
||||
import { AgentfilesSettingTab } from "./settings";
|
||||
import { DEFAULT_SETTINGS, type ChopsSettings } from "./types";
|
||||
|
||||
export default class AgentSkillsPlugin extends Plugin {
|
||||
export default class AgentfilesPlugin extends Plugin {
|
||||
settings: ChopsSettings = DEFAULT_SETTINGS;
|
||||
store: SkillStore = new SkillStore();
|
||||
private watcher: SkillWatcher | null = null;
|
||||
|
|
@ -15,7 +15,7 @@ export default class AgentSkillsPlugin extends Plugin {
|
|||
await this.loadSettings();
|
||||
|
||||
this.registerView(VIEW_TYPE, (leaf) =>
|
||||
new AgentSkillsView(
|
||||
new AgentfilesView(
|
||||
leaf,
|
||||
this.store,
|
||||
this.settings,
|
||||
|
|
@ -23,15 +23,15 @@ export default class AgentSkillsPlugin extends Plugin {
|
|||
)
|
||||
);
|
||||
|
||||
this.addRibbonIcon("cpu", "Agent Skills", () => this.activateView());
|
||||
this.addRibbonIcon("cpu", "Agentfiles", () => this.activateView());
|
||||
|
||||
this.addCommand({
|
||||
id: "open-agent-skills",
|
||||
name: "Open Agent Skills",
|
||||
id: "open-agentfiles",
|
||||
name: "Open Agentfiles",
|
||||
callback: () => this.activateView(),
|
||||
});
|
||||
|
||||
this.addSettingTab(new AgentSkillsSettingTab(this.app, this));
|
||||
this.addSettingTab(new AgentfilesSettingTab(this.app, this));
|
||||
|
||||
this.refreshStore();
|
||||
this.startWatcher();
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import { PluginSettingTab, Setting, type App } from "obsidian";
|
||||
import { TOOL_CONFIGS } from "./tool-configs";
|
||||
import type { ChopsSettings } from "./types";
|
||||
import type AgentSkillsPlugin from "./main";
|
||||
import type AgentfilesPlugin from "./main";
|
||||
|
||||
export class AgentSkillsSettingTab extends PluginSettingTab {
|
||||
plugin: AgentSkillsPlugin;
|
||||
export class AgentfilesSettingTab extends PluginSettingTab {
|
||||
plugin: AgentfilesPlugin;
|
||||
|
||||
constructor(app: App, plugin: AgentSkillsPlugin) {
|
||||
constructor(app: App, plugin: AgentfilesPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ export class AgentSkillsSettingTab extends PluginSettingTab {
|
|||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
|
||||
containerEl.createEl("h2", { text: "Agent Skills" });
|
||||
containerEl.createEl("h2", { text: "Agentfiles" });
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName("File watching")
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import { SidebarPanel } from "./sidebar";
|
|||
import { ListPanel } from "./list";
|
||||
import { DetailPanel } from "./detail";
|
||||
|
||||
export const VIEW_TYPE = "agent-skills-view";
|
||||
export const VIEW_TYPE = "agentfiles-view";
|
||||
|
||||
export class AgentSkillsView extends ItemView {
|
||||
export class AgentfilesView extends ItemView {
|
||||
private store: SkillStore;
|
||||
private settings: ChopsSettings;
|
||||
private saveSettings: () => Promise<void>;
|
||||
|
|
@ -37,7 +37,7 @@ export class AgentSkillsView extends ItemView {
|
|||
}
|
||||
|
||||
getDisplayText(): string {
|
||||
return "Agent Skills";
|
||||
return "Agentfiles";
|
||||
}
|
||||
|
||||
getIcon(): string {
|
||||
|
|
|
|||
3
versions.json
Normal file
3
versions.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"0.1.0": "1.4.11"
|
||||
}
|
||||
Loading…
Reference in a new issue