소스 정보
- 저장소
- octos-org/octos
- 최근 소스 활동
- 2026년 3월 16일 02:23
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1,029
- 포크
- 75
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/octos-org/octos --skill skill-creator명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
List and control smart-home devices (lights, thermostats, switches, covers, speakers) via the profile's configured bridge. Triggers: smart home, turn on/off, lights, thermostat, dim, brightness, temperature, unlock, devices, 智能家居, 开灯, 关灯, 空调, 窗帘, 灯光, 设备.
Batch ASR (via dedicated ASR_API_URL or OminiX fallback), preset-voice TTS with emotion/speed control, and model management via Qwen3 models on Apple Silicon. For voice cloning and custom voice profiles, use mofa-fm. Triggers: voice, transcribe audio, text to speech, speak this, read aloud, model management, download model, 语音识别, 语音合成, 模型管理.
Summarizes a text file into a compact report. Used as a third-party compatibility harness. Triggers: summarize, summary, compat-test, harness check.
SOC 직업 분류 기준
| name | skill-creator |
| description | Create custom skill packages with instructions, tools, and assets. |
| version | 1.0.0 |
| author | octos |
Create skill packages that extend the agent with new knowledge and tools.
A skill package is a directory with at least a SKILL.md file:
my-skill/
SKILL.md # Required: agent instructions + frontmatter
manifest.json # Optional: declares tool executables
Cargo.toml # Optional: Rust crate (if tool is written in Rust)
src/main.rs # Optional: tool source code
package.json # Optional: Node.js dependencies
scripts/ # Optional: helper scripts
references/ # Optional: reference docs
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
author: your-name
always: false
requires_bins: docker,kubectl
requires_env: GITHUB_TOKEN
---
# Skill Title
Instructions for the agent on how to use this skill.
Include examples, tool usage patterns, and best practices.
| Field | Required | Description |
|---|---|---|
name | Yes | Skill identifier (lowercase, hyphens) |
description | Yes | One-line description (shown in skill index) |
version | No | Semver version (e.g. 1.0.0) |
author | No | Author name or org |
always | No | true to auto-load in every prompt (default: false) |
requires_bins | No | Comma-separated binaries that must be on PATH |
requires_env | No | Comma-separated env vars that must be set |
To provide executable tools that the agent can call, add a manifest.json:
{
"name": "my-skill",
"version": "1.0.0",
"tools": [
{
"name": "my_tool",
"description": "What this tool does (shown to the LLM)",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"},
"limit": {"type": "integer", "description": "Max results", "default": 10}
The tool executable receives JSON on stdin and must output JSON on stdout:
stdin: {"query": "rust async", "limit": 5}
stdout: {"output": "Results here...", "success": true}
The PluginLoader looks for executables in this order:
<skill-dir>/main — pre-built binary (downloaded from registry or built locally)<skill-dir>/<skill-name> — named binary<skill-dir>/index.js — Node.js script (run via node)Add a Cargo.toml and src/main.rs. During octos skills install, the system will:
cargo build --release if no binary is available// src/main.rs
use serde::{Deserialize, Serialize};
use std::io::Read;
#[derive(Deserialize)]
struct Input {
query: String,
#[serde(default = "default_limit")]
limit: usize,
}
fn default_limit() -> usize { 10 }
#[derive(Serialize)]
struct Output {
output: String,
success: bool,
}
fn main() {
let mut input = String::new();
std::io::stdin().read_to_string(&mut input).unwrap();
let args: Input = serde_json::from_str(&input).unwrap();
// Your tool logic here
let result = format!("Searched for '{}', limit {}", args.query, args.limit);
let output = Output { output: result, success: true };
println!("{}", serde_json::to_string(&output).unwrap());
}
Add a package.json and index.js. During install, npm install runs automatically.
// index.js
const input = JSON.parse(require('fs').readFileSync('/dev/stdin', 'utf8'));
const result = { output: `Processed: ${input.query}`, success: true };
console.log(JSON.stringify(result));
A single repo can contain multiple skills as top-level directories:
my-skills-repo/
skill-a/
SKILL.md
skill-b/
SKILL.md
manifest.json
src/main.rs
shared-lib/ # Shared deps auto-detected
...
Install all: octos skills install user/my-skills-repo
Install one: octos skills install user/my-skills-repo/skill-a
always: true are included in every system promptread_filerequires_bins to gate skills needing external toolsalways: true sparingly (adds to every prompt)