You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WHAT'S NEW
Skills System
- Added Skills framework for extending CodeRunner
with reusable, shareable capabilities
- Skills are Python scripts with markdown
documentation that can be installed and used via MCP
- New SKILLS-README.md with comprehensive
documentation on creating and using skills
Built-in Skills
- image-crop-rotate: Crop and rotate images with
precise control
- pdf-text-replace: Search and replace text in PDF
documents while preserving formatting
Infrastructure Changes
- Enhanced Dockerfile with additional dependencies
for image processing (opencv-python, pillow) and PDF
manipulation (PyMuPDF, reportlab)
- Updated install.sh to copy skills directory to
~/.coderunner/assets/
- Extended server.py with skills discovery, loading,
and tool registration (201 new lines)
- Added 45 new Python dependencies in
requirements.txt for skills support
Documentation
- Added Gemini CLI system instructions in
examples/gemini_cli/GEMINI.md
- Updated README.md with Skills section and usage
examples
- Documented skills architecture and contribution
guidelines
Bug Fixes
- Fixed container DNS configuration (removed obsolete
'container dns default' command)
Key Components:
- Skills discovery from ~/.coderunner/assets/skills
and container's /app/skills
- Dynamic MCP tool registration for each skill
- Validation of skill structure (SKILL.md + scripts
directory)
- Support for both public and custom skills
Testing:
- Verified with smiley creator GIF generation
- Tested DOCX and PPTX file handling with markdown
fetching
- Validated image crop/rotate and PDF text
replacement skills
Copy file name to clipboardExpand all lines: README.md
+66Lines changed: 66 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -178,11 +178,77 @@ Code runs in an isolated container with VM-level isolation. Your host system and
178
178
From [@apple/container](https://github.com/apple/container/blob/main/docs/technical-overview.md):
179
179
>Each container has the isolation properties of a full VM, using a minimal set of core utilities and dynamic libraries to reduce resource utilization and attack surface.
180
180
181
+
## Skills System
182
+
183
+
CodeRunner includes a built-in skills system that provides pre-packaged tools for common tasks. Skills are organized into two categories:
184
+
185
+
### Built-in Public Skills
186
+
187
+
The following skills are included in every CodeRunner installation:
188
+
189
+
-**pdf-text-replace** - Replace text in fillable PDF forms
# Skills powered by coderunner, running locally on your Mac
2
+
3
+
> [!NOTE]
4
+
> [CodeRunner](https://github.com/instavm/coderunner) executes AI-generated code in a truly isolated sandboxed environment on your Mac using Apple's native containers.
5
+
6
+
# Pre-requisite
7
+
*`Mac` with a `M-series` chip.
8
+
* Install the latest`coderunner` by running the `./install.sh` script from the main repository.
9
+
```shell
10
+
./install.sh
11
+
```
12
+
13
+
# How To Use Skills
14
+
*`coderunner` is exposed as an MCP and can be connected to tools like `gemini cli` or `qwen cli` or `claude desktop` or anything that supports MCP. The execution is completely local, done on your Mac.
15
+
16
+
*For example, for Gemini CLI, you can edit*`~/.gemini/settings.json`
17
+
```json
18
+
{
19
+
"theme": "Default",
20
+
"selectedAuthType": "oauth-personal",
21
+
"mcpServers": {
22
+
"coderunner": {
23
+
"httpUrl": "http://coderunner.local:8222/mcp"
24
+
}
25
+
}
26
+
}
27
+
```
28
+
29
+
And for system instructions, replace the `~/.gemini/GEMINI.md` with the [GEMINI.md](https://github.com/instavm/coderunner/examples/gemini/GEMINI.md)
30
+
31
+
32
+
# How To Add New Skills
33
+
34
+
## Option 1: Import from Claude
35
+
36
+
You can either download and copy the folder from Anthropic skills's [github repo](https://github.com/anthropics/skills/) to `~/.coderunner/assets/skills/user/<new-skill-folder>`
37
+
38
+
For example, I have added 4 skills in the user folder as:
39
+
```shell
40
+
/Users/manish/.coderunner/assets/skills/
41
+
├── public
42
+
│ ├── image-crop-rotate
43
+
│ │ ├── scripts
44
+
│ │ └── SKILL.md
45
+
│ └── pdf-text-replace
46
+
│ ├── scripts
47
+
│ └── SKILL.md
48
+
└── user
49
+
├── docx
50
+
│ ├── docx-js.md
51
+
│ ├── LICENSE.txt
52
+
│ ├── ooxml
53
+
│ ├── ooxml.md
54
+
│ ├── scripts
55
+
│ └── SKILL.md
56
+
├── pptx
57
+
│ ├── html2pptx.md
58
+
│ ├── LICENSE.txt
59
+
│ ├── ooxml
60
+
│ ├── ooxml.md
61
+
│ ├── scripts
62
+
│ └── SKILL.md
63
+
├── slack-gif-creator
64
+
│ ├── core
65
+
│ ├── LICENSE.txt
66
+
│ ├── requirements.txt
67
+
│ ├── SKILL.md
68
+
│ └── templates
69
+
└── xlsx
70
+
├── LICENSE.txt
71
+
├── recalc.py
72
+
└── SKILL.md
73
+
```
74
+
75
+
76
+
## Option 2: Write Your Own Skills
77
+
78
+
* You can create a folder in the similar structure as above, where only mandatory file is the `SKILL.md`. [Docs](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)
79
+
* You can also ask claude to generate one like `Can you write a skill which creates ascii art of words given one.`
80
+
After it creates the skill, it will let you download a `ZIP` file which you can place directly (no need to expand) in `~/.coderunner/assets/skills/user`
81
+
82
+
Test drive with Gemini CLI
83
+
84
+
```
85
+
> /mcp
86
+
87
+
Configured MCP servers:
88
+
89
+
🟢 coderunner - Ready (5 tools)
90
+
Tools:
91
+
- execute_python_code
92
+
- get_skill_file
93
+
- get_skill_info
94
+
- list_skills
95
+
- navigate_and_get_all_visible_text
96
+
97
+
> can you generate ascii art for "CODERUNNER"
98
+
99
+
✦ I will generate the ASCII art you desire. First, I must survey my available skills.
100
+
✓ list_skills (coderunner MCP Server)
101
+
102
+
✦ I have located a relevant skill: ascii-art. I will now retrieve its instructions.
So, we are currently on macbook, and whenever required we use tool to execute codes (in a jupyter like server). the code is executed in a container (you wouldn't notice but just know this).
4
+
5
+
The paths on local machine is ~/.coderunner/assets/skills/user is mapped to /app/uploads/skills/user inside container.
6
+
7
+
~/.coderunner/assets/outputs (in the host machine) is mapped to /app/uploads/outputs inside conatiner. This is where user will puts their files they want to edit like some png, pdf, txt etc. You should also use it to output your artifacts generated.
8
+
9
+
So that will help whenever we need a file inside a container to work on it via the execute code tool.
10
+
11
+
There are also "skills" which can do jobs by executing scripts already residing in /app/uploads/skills/<public|user>/<skill-name> . There are tools available to check what skills are avaialble, after checking you can decide wchihc specific skill you wantg to use and then get info about that skill using tool. That will have instructions on how to call execute code with stuff like `!python /path/to/script.py <input> <output>`\
12
+
13
+
Whenever I ask you to do a task, alwasys check if there are skills available in the list which can do it.
14
+
15
+
Whenever you need to install something, mostly it will be installed in teh container via execute code tool, and `!pip install pyfiglet` command etc.
0 commit comments