Skills - JoelBondoux/AtlasMind GitHub Wiki
AtlasMind ships with 26 built-in skills that agents can call during execution. You can also import custom skills or connect MCP servers for unlimited extensibility.
| Skill | Description |
|---|---|
file-read |
Read file contents with optional line range (startLine, endLine) |
file-write |
Write content to a file (creates or overwrites) |
file-edit |
Apply targeted edits to an existing file (find/replace) |
file-search |
Search for files by glob pattern |
file-delete |
Delete a file (workspace-sandboxed) |
file-move |
Move or rename a file (workspace-sandboxed) |
directory-list |
List contents of a directory with types |
| Skill | Description |
|---|---|
git-status |
Get git status --short --branch output |
git-diff |
Get diff (optionally staged or against a ref) |
git-commit |
Stage and commit changes with a message |
git-log |
View commit history with filtering options |
git-branch |
List, create, switch, or delete branches |
git-apply-patch |
Apply a unified diff patch to the workspace |
diff-preview |
Preview changes before applying (dry run) |
rollback-checkpoint |
Restore the most recent automatic pre-write snapshot |
| Skill | Description |
|---|---|
diagnostics |
Retrieve compiler errors and warnings via the VS Code diagnostics API |
code-symbols |
AST-aware navigation: list symbols, find references, go to definition |
rename-symbol |
Cross-codebase rename via the language server with identifier validation |
code-action |
List and apply code actions (quick fixes, refactorings) from language servers |
| Skill | Description |
|---|---|
text-search |
Grep-style text search across workspace files (regex supported) |
memory-query |
Query the SSOT memory system (max 50 results) |
web-fetch |
Fetch URL content with SSRF protection (blocks localhost, private IPs, metadata endpoints); 30s timeout |
| Skill | Description |
|---|---|
memory-write |
Write an entry to SSOT memory (validated, scanned, persisted to disk) |
memory-delete |
Remove a memory entry by path |
| Skill | Description |
|---|---|
terminal-run |
Execute a command in the workspace terminal with a tiered allow-list (~40 safe commands); 15s timeout |
test-run |
Auto-detect and run test framework (vitest, jest, mocha, pytest, cargo test); 120s timeout |
interface SkillDefinition {
id: string; // Unique identifier
name: string; // Display name
description: string; // Shown to the LLM for tool selection
parameters: Record<string, unknown>; // JSON Schema for parameters
execute: SkillHandler; // The handler function
source?: string; // Absolute path (custom skills only)
builtIn?: boolean; // true for extension-provided skills
timeoutMs?: number; // Execution timeout (default: 15000ms)
}
type SkillHandler = (
params: Record<string, unknown>,
context: SkillExecutionContext,
) => Promise<string>;Every skill handler receives a SkillExecutionContext with workspace APIs:
-
File I/O:
readFile(),writeFile(),deleteFile(),moveFile(),findFiles(),listDirectory() -
Text search:
searchInFiles()with regex support -
Git:
getGitStatus(),getGitDiff(),getGitLog(),gitBranch(),applyGitPatch() -
Code intelligence:
getDiagnostics(),getDocumentSymbols(),findReferences(),goToDefinition(),renameSymbol(),getCodeActions(),applyCodeAction() -
Terminal:
runCommand()(with allow-list enforcement) -
Test runner:
testRun()(auto-detect framework) -
Web fetch:
fetchUrl()(with SSRF protection) -
Memory:
queryMemory(),upsertMemory(),deleteMemory() -
Checkpoints:
rollbackLastCheckpoint()
All file operations are workspace-sandboxed — path traversal outside the workspace root is rejected.
- Toggle any skill in the Skills sidebar tree view
- Disabled skills are hidden from agents and the LLM
- Disabled IDs persist across sessions in
atlasmind.disabledSkillIds
| Skill | Timeout |
|---|---|
| Default | 15 seconds |
web-fetch |
30 seconds |
test-run |
120 seconds |
| Custom (configurable) | Set via timeoutMs on SkillDefinition
|
- Max tool calls per turn: 8
- Multiple tools in one turn run concurrently with
Promise.all - Each call is independently gated by the approval system
- Open Command Palette → AtlasMind: Add Skill → Create from template
- A template file is scaffolded in
.atlasmind/skills/ - Edit the file to implement your skill logic
- The skill scanner runs automatically before the skill is enabled
- AtlasMind: Add Skill → Import existing file
- Select a
.jsfile - The file must export
module.exports.skillormodule.exports.defaultas a validSkillDefinition
When atlasmind.experimentalSkillLearningEnabled is true:
- Ask
@atlasto create a skill - The LLM generates a skill definition with code
- The draft is saved to
.atlasmind/skills/and must pass the security scanner before use
Custom skills are scanned before enablement. The scanner has 12 built-in rules:
Error-level (blocks enablement):
| Rule | What it catches |
|---|---|
no-eval |
eval() calls |
no-function-constructor |
new Function() |
no-child-process-require |
require('child_process') |
no-child-process-import |
import of child_process
|
no-shell-exec |
exec(), spawn(), execSync()
|
no-path-traversal |
../ path patterns |
no-hardcoded-secret |
API keys, tokens, passwords in source |
Warning-level (flagged but allowed):
| Rule | What it catches |
|---|---|
no-process-env |
process.env access |
no-direct-fetch |
fetch(), axios, got calls |
no-http-require |
Node http/https module imports |
no-http-import |
ES module imports of http/https
|
no-fs-direct |
require('fs') bypassing the context API |
Built-in skills are pre-approved at activation and skip the security scan.
Open Command Palette → AtlasMind: Configure Scanner Rules to:
- View all rules with descriptions
- Toggle rules on/off
- Add custom rules (regex pattern + severity)
- Reset to defaults
External tools from MCP servers appear as skills with the ID pattern mcp:<serverId>:<toolName>.
- Open Command Palette → AtlasMind: Manage MCP Servers
- Add a server:
-
stdio transport:
npx -y @modelcontextprotocol/server-filesystem /path/to/allowed -
HTTP transport:
https://my-mcp-server.example.com
-
stdio transport:
- Tools from the server auto-register as skills
- MCP skills are pre-approved (no security scan required)
- Individual MCP tools can be enabled/disabled in the Skills tree view
- MCP server connections persist across sessions
See Tool Execution for approval gating details.