
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
clawskills-strands
Advanced tools
Convert OpenClaw skills (markdown documentation) to executable Strands Agents tools
Convert OpenClaw skills (markdown documentation) to executable Strands Agents tools.
OpenClaw skills are markdown files that document CLI commands and workflows. In OpenClaw, agents read these files and execute commands manually. This package converts those skills into directly executable Strands Agents tools, making them immediately usable without the read-then-exec pattern.
npm install clawskills-strands
Peer Dependencies:
@strands-agents/sdk - Required for tool creationzod - Required for schema validationimport { Agent } from '@strands-agents/sdk'
import { BedrockModel } from '@strands-agents/sdk'
import { loadSkills, convertSkillsToTools } from 'clawskills-strands'
// Load all 52 bundled OpenClaw skills (included with package)
const skills = await loadSkills({
useBundled: true
})
// Convert to Strands tools
const tools = await convertSkillsToTools(skills)
// Use with Strands Agent
const agent = new Agent({
model: new BedrockModel({ region: 'us-east-1' }),
tools: tools
})
// Agent can now use skills directly as tools!
await agent.invoke('Get the weather for London')
loadSkills(options?)Load skills from various sources.
const skills = await loadSkills({
useBundled: true, // Include bundled skills (default: true)
skillsDir: './my-skills', // Primary directory to load from
extraDirs: [ // Additional directories
'./custom-skills',
process.env.OPENCLAW_SKILLS_DIR
]
})
Returns: Promise<Skill[]> - Array of loaded skills
loadBundledSkills()Load only the skills bundled with the package.
const bundledSkills = await loadBundledSkills()
loadSkillByName(name, options?)Load a specific skill by name.
const weatherSkill = await loadSkillByName('weather', {
useBundled: true
})
convertSkillToTool(skill, options?)Convert a single skill to a Strands tool.
const tool = await convertSkillToTool(skill, {
useBash: true, // Use bash for command execution (default: true)
executor: customExecutor // Optional custom executor function
})
Returns: Promise<Tool> - A Strands-compatible tool
convertSkillsToTools(skills, options?)Convert multiple skills to Strands tools.
const tools = await convertSkillsToTools(skills)
Skills are markdown files with YAML frontmatter:
---
name: weather
description: Get current weather and forecasts
metadata: { "openclaw": { "emoji": "🌤️", "requires": { "bins": ["curl"] } } }
---
# Weather
```bash
curl -s "wttr.in/London?format=3"
### Conversion Process
1. **Parse**: Extract frontmatter and content from SKILL.md
2. **Analyze**: Extract CLI command patterns from code blocks
3. **Infer Schema**: Automatically infer Zod input schema from commands
4. **Create Tool**: Generate Strands tool with executable callback
### Example Output
```json
{
"skillsLoaded": 3,
"toolsCreated": 3,
"tools": [
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"hasSchema": true
}
]
}
import { loadSkills, convertSkillsToTools } from 'clawskills-strands'
import { Agent, BedrockModel } from '@strands-agents/sdk'
const skills = await loadSkills({ useBundled: true })
const tools = await convertSkillsToTools(skills)
const agent = new Agent({
model: new BedrockModel({ region: 'us-east-1' }),
tools: tools
})
const skills = await loadSkills({
useBundled: true,
skillsDir: './my-custom-skills',
extraDirs: ['./workspace-skills']
})
import { loadSkillByName, convertSkillToTool } from 'clawskills-strands'
const skill = await loadSkillByName('github')
const githubTool = await convertSkillToTool(skill)
See examples/ directory for complete examples with outputs.
The converter intelligently handles different skill types:
gh, memo, curl): Extracts command patternsThe converter analyzes skill content to infer input schemas:
repo, prNumber, issueNumber, limitlocation, formataction, title, query, foldercommand + args parametersCommands are built from:
clawskills-strands/
├── src/
│ ├── types.ts # Type definitions
│ ├── parser.ts # Skill file parser
│ ├── loader.ts # Skill loader
│ ├── converter.ts # Skill to tool converter
│ └── index.ts # Main exports
├── skills/ # Bundled skills (copied from OpenClaw)
├── examples/ # Usage examples
│ ├── src/ # Example source files
│ └── outputs/ # Example run outputs
├── dist/ # Compiled output
└── package.json
# Install dependencies
npm install
# Build
npm run build
# Test
npm test
# Run examples
npx tsx examples/run-example.ts
# Build and test
npm run prepublishOnly
# Publish
npm publish
MIT
Contributions welcome! This package converts OpenClaw skills to Strands tools, making them directly usable in Strands Agents.
FAQs
Convert OpenClaw skills (markdown documentation) to executable Strands Agents tools
The npm package clawskills-strands receives a total of 2 weekly downloads. As such, clawskills-strands popularity was classified as not popular.
We found that clawskills-strands demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.