[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-993":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},993,"SkVM","SJTU-IPADS\u002FSkVM","SJTU-IPADS","The Language Virtual Machine for Agent Skills","",null,"TypeScript",505,48,7,10,0,5,16,50,15,9.07,"MIT License",false,"main",[],"2026-06-12 02:00:21","\u003Cdiv align=\"center\">\n\n# SkVM\n\n**Compile and run LLM agent skills across heterogeneous models and harnesses**\n\n[English](.\u002FREADME.md) | [中文](.\u002FREADME.zh-CN.md)\n\n[Website](https:\u002F\u002Fskillvm.ai) · [GitHub](https:\u002F\u002Fgithub.com\u002FSJTU-IPADS\u002FSkVM) · [Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.03088)\n\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@ipads-skvm\u002Fskvm?color=cb3837&logo=npm)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@ipads-skvm\u002Fskvm)\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FSJTU-IPADS\u002FSkVM)](.\u002FLICENSE)\n[![release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FSJTU-IPADS\u002FSkVM)](https:\u002F\u002Fgithub.com\u002FSJTU-IPADS\u002FSkVM\u002Freleases)\n[![last commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FSJTU-IPADS\u002FSkVM)](https:\u002F\u002Fgithub.com\u002FSJTU-IPADS\u002FSkVM\u002Fcommits)\n\n\u003C\u002Fdiv>\n\nSkVM is a compilation and runtime system that makes LLM agent skills portable across heterogeneous models and harnesses. It has four major parts:\n\n- **Profiling** — measure a model+harness against pre-defined primitive capabilities\n- **AOT-Compilation** — compile a skill with multiple passes in AOT compiler\n- **JIT-Optimization** — improve runtime speed (JIT-boost) and skill content (JIT-optimize)\n- **Benchmark** — evaluate original, compiled, and optimized skills across tasks, conditions, and models\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fskvm_arch.png\" alt=\"SkVM architecture\" width=\"66%\" \u002F>\n\u003C\u002Fp>\n\nReference: **SkVM: Revisiting Language VM for Skills across Heterogenous LLMs and Harnesses** — https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.03088\n\n## Demo\n\n### SkVM Optimization: Skill Quality Comparison\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb21132b5-a697-41b9-a802-476389bdb466\"\u002F>\n\u003C\u002Fdiv>\n\n### SkVM Accelerates Agent Execution\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F05636f9e-1d13-43c6-b82b-43af577fbf52\"\u002F>\n\u003C\u002Fdiv>\n\n## Install\n\n```bash\n# curl one-liner (macOS \u002F Linux)\ncurl -fsSL https:\u002F\u002Fskillvm.ai\u002Finstall.sh | sh\n\n# or via npm (any platform with Node ≥ 18; postinstall fetches the matching binary)\nnpm i -g @ipads-skvm\u002Fskvm\n```\n\nThe installer drops a standalone binary at `~\u002F.local\u002Fshare\u002Fskvm\u002Fbin\u002Fskvm` (symlinked into `~\u002F.local\u002Fbin\u002Fskvm`) and bundles a private, isolated headless agent runtime used internally by `skvm jit-optimize` — it is fully self-contained and does not touch any agent or CLI you may have installed globally.\n\n**Agent-facing skills** ship inside the install. Copy them into your agent harness's skills directory to teach it how to drive skvm:\n\n```bash\n# OpenClaw\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-jit ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002F\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-general ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002F\n\n# Hermes Agent\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-jit ~\u002F.hermes\u002Fskills\u002F\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-general ~\u002F.hermes\u002Fskills\u002F\n\n# pi Agent\nmkdir -p ~\u002F.pi\u002Fagent\u002Fskills\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-jit ~\u002F.pi\u002Fagent\u002Fskills\u002F\ncp -r ~\u002F.local\u002Fshare\u002Fskvm\u002Fskills\u002Fskvm-general ~\u002F.pi\u002Fagent\u002Fskills\u002F\n```\n\n- `skvm-jit` — post-task JIT optimization skill for submitting conversation logs to `skvm jit-optimize`\n- `skvm-general` — drives `profile` \u002F `aot-compile` \u002F `bench` \u002F `proposals` on behalf of a user\n\n\u003C!-- ### Quick OpenClaw Integration\n\nIf you want OpenClaw to bootstrap SkVM for itself, you can give OpenClaw the following instruction block. It tells OpenClaw to install SkVM with the official installer, download `skvm-general` and `skvm-jit` from their concrete SkillVM URLs, and place them into OpenClaw's global skills directory at `~\u002F.openclaw\u002Fworkspace\u002Fskills\u002F`.\n\n```text\nInstall SkVM for this machine with the official installer:\ncurl -fsSL https:\u002F\u002Fskillvm.ai\u002Finstall.sh | sh\n\nThen install the two OpenClaw skills with these commands:\nmkdir -p ~\u002F.openclaw\u002Fworkspace\u002Fskills\n\nmkdir -p ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-general\ncurl -fsSL https:\u002F\u002Fskillvm.ai\u002Fskills\u002Fskvm-general\u002FSKILL.md -o ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-general\u002FSKILL.md\n\nmkdir -p ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-jit\ncurl -fsSL https:\u002F\u002Fskillvm.ai\u002Fskills\u002Fskvm-jit\u002FSKILL.md -o ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-jit\u002FSKILL.md\ncurl -fsSL https:\u002F\u002Fskillvm.ai\u002Fskills\u002Fskvm-jit\u002Fadapter-skill-paths.md -o ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-jit\u002Fadapter-skill-paths.md\n\nThis should create:\n~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-general\u002FSKILL.md\n~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-jit\u002FSKILL.md\n~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fskvm-jit\u002Fadapter-skill-paths.md\n```\n\n**After installation, when executing any task that uses a skill, append this instruction to the task: \"If this task uses a skill, use SkVM to optimize that skill during or after execution.\"**\n\nThis is the quickest way to make an OpenClaw environment self-host the SkVM toolchain and the two integration skills without requiring a separate manual setup flow. -->\n\n## Quick Start\n\nConfigure your agent harness, provider, and API key via the interactive wizard:\n\n```bash\nskvm config init\n```\n\nThis writes `$SKVM_CACHE\u002Fskvm.config.json` (default `~\u002F.skvm\u002Fskvm.config.json`). For non-interactive setups, see [docs\u002Fproviders.md](docs\u002Fproviders.md).\n\n**Adapter config mode.** External harnesses run in one of two modes: `managed|native` (default `managed`):\n- **managed** — skvm provisions a fresh, minimal config inside the sandbox (e.g. a new openclaw agent, or a generated `hermes` `config.yaml`). Clean baseline, no reliance on host state.\n- **native** — skvm clones the user's existing harness config (e.g. an openclaw source agent under `~\u002F.openclaw\u002Fagents\u002F\u003Cname>`, or a hermes active profile). Requires the harness to be set up locally first.\n\n**Model id format.** Model parameters on the CLI take the form `\u003Cprovider>\u002F\u003Cmodel-id>` — the leading `\u003Cprovider>` selects the model service provider, while `\u003Cmodel-id>` is how that provider refers to the model. For OpenRouter that's three segments, e.g. `openrouter\u002Fqwen\u002Fqwen3.5-35b-a3b`; for the Anthropic native API it's two, e.g. `anthropic\u002Fclaude-sonnet-4.6`.\n\n### 1. Profile a model's primitive capabilities\n\nWrites a target capability profile to `~\u002F.skvm\u002Fprofiles\u002F`.\n\nIf your target model + adapter pair is already covered by the pre-built profiles shipped in `skvm-data\u002Fprofiles\u002F`, you can copy the cached result into your local profile cache and skip `skvm profile` entirely:\n\n```bash\nmkdir -p ~\u002F.skvm\u002Fprofiles\ncp -R skvm-data\u002Fprofiles\u002F. ~\u002F.skvm\u002Fprofiles\u002F\n```\n\n```bash\nskvm profile \\\n  --adapter=bare-agent \\\n  --model=\u003Cprovider>\u002F\u003Cmodel-id>\n  # e.g. --model=anthropic\u002Fclaude-sonnet-4.6\n  # e.g. --model=openrouter\u002Fqwen\u002Fqwen3.5-35b-a3b\n```\n\nWith the default `--concurrency=1`, this example typically takes about 20 minutes for one full run. If you want it to finish faster, increase `--concurrency` to profile more primitives in parallel.\n\n### 2. Compile a skill against that profile\n\nThe compiler rewrites the skill to match the target's capabilities. A cached profile for the same `--model` + `--adapter` pair must exist (run `skvm profile` first, or use `skvm pipeline` which profiles automatically).\n\n```bash\nskvm aot-compile \\\n  --skill=path\u002Fto\u002Fskill-dir \\\n  --model=\u003Cprovider>\u002F\u003Cmodel-id> \\\n  --adapter=bare-agent \\\n  --pass=1 \\\n  --compiler-model=\u003Cprovider>\u002F\u003Cmodel-id>\n```\n\nCompiled variants are written under `~\u002F.skvm\u002Fproposals\u002Faot-compile\u002F\u003Cadapter>\u002F\u003CsafeModel>\u002F\u003CskillName>\u002F\u003CpassTag>\u002F` by default. \n\n### 3. Autotune the skill with synthetic tasks\n\nThe optimizer LLM derives tasks from the skill itself, then loops edit → rerun → score.\n\nBy default, synthetic mode generates 2 training tasks and 1 held-out test task.\n\n```bash\nskvm jit-optimize \\\n  --skill=path\u002Fto\u002Fskill-dir \\\n  --task-source=synthetic \\\n  --task-concurrency=3 \\\n  --target-adapter=bare-agent \\\n  --optimizer-model=\u003Cprovider>\u002F\u003Cmodel-id> \\\n  --rounds=1 \\\n  --target-model=\u003Cprovider>\u002F\u003Cmodel-id>\n```\n\nResults are written under `~\u002F.skvm\u002Fproposals\u002Fjit-optimize\u002F\u003Cadapter>\u002F\u003CsafeTargetModel>\u002F\u003CskillName>\u002F\u003Ctimestamp>\u002F` by default. \n\n### 4. Optimize from an existing conversation log\n\nNo rerun, just diagnose and edit. Good for post-mortems and for the `skvm-jit` post-task optimization hook.\n\n```bash\nskvm jit-optimize \\\n  --skill=path\u002Fto\u002Fskill-dir \\\n  --task-source=log \\\n  --target-adapter=bare-agent \\\n  --logs=path\u002Fto\u002Fsession.jsonl \\\n  --optimizer-model=\u003Cprovider>\u002F\u003Cmodel-id> \\\n  --target-model=\u003Cprovider>\u002F\u003Cmodel-id>\n```\n\n### Review, accept, or reject the proposal\n\n```bash\nskvm proposals list        # CLI listing\nskvm proposals show \u003Cid>   # CLI detail view\nskvm proposals accept \u003Cid> # CLI accept\nskvm proposals serve       # Web review UI\n```\n\n## Configuration\n\nSkVM keeps all runtime artifacts — cached profiles, proposal trees, bench and compile logs — under a single cache root:\n\n```\n~\u002F.skvm\u002F\n├── profiles\u002F   # Cached target capability profiles\n├── log\u002F        # Profile, compile, bench, and runtime logs\n└── proposals\u002F  # AOT-compile, jit-boost, jit-optimize outputs\n```\n\nThe cache is user-global and shared across every directory you invoke `skvm` from, so profiles cached in one project are reused everywhere. Override the location via:\n\n- `--skvm-cache=\u003Cpath>` flag (one-off)\n- `SKVM_CACHE` env var (persistent), e.g. `export SKVM_CACHE=\u002Fmnt\u002Ffast\u002Fskvm`\n\nIndividual subdirectories can also be pointed elsewhere with `SKVM_PROFILES_DIR`, `SKVM_LOGS_DIR`, and `SKVM_PROPOSALS_DIR`.\n\n## Dataset: skvm-data\n\nThe benchmark skills, tasks, and pre-built profiles live in a separate Git submodule ([SJTU-IPADS\u002FSkVM-data](https:\u002F\u002Fgithub.com\u002FSJTU-IPADS\u002FSkVM-data)). Clone it if you plan to run `skvm bench` and want to use the bundled skills\u002Ftasks directly:\n\n```bash\ngit submodule update --init   # or: git clone --recurse-submodules\n```\n\nThis populates the `skvm-data\u002F` directory:\n\n```\nskvm-data\u002F\n├── skills\u002F     # 108 skill directories (each contains a SKILL.md)\n├── tasks\u002F      # 216 task directories (each contains a task.json)\n└── profiles\u002F   # Pre-built target capability profiles\n    ├── bare-agent\u002F\n    └── openclaw\u002F\n```\n\n`skvm bench` resolves skills and tasks from `skvm-data\u002F` by default. Override the location via:\n\n- `--skvm-data-dir=\u003Cpath>` flag (one-off)\n- `SKVM_DATA_DIR` env var (persistent)\n\nCommands that take an explicit `--skill=\u003Cpath>` or `--task=\u003Cpath>` do not need the submodule — they work with any directory on disk.\n\n`skvm-data\u002Fprofiles\u002F` already includes pre-built profiles for some model + adapter combinations. If the pair you need is already there, copy `skvm-data\u002Fprofiles\u002F` into your profile cache directory (default: `~\u002F.skvm\u002Fprofiles\u002F`, or `SKVM_PROFILES_DIR` if set) and you can skip running `skvm profile` for that target. See the profile list in the profiling section above for the currently bundled combinations.\n\n```bash\nmkdir -p ~\u002F.skvm\u002Fprofiles\ncp -R skvm-data\u002Fprofiles\u002F. ~\u002F.skvm\u002Fprofiles\u002F\n```\n\n## Learn more\n\n- **[docs\u002Fusage.md](docs\u002Fusage.md)** — full command reference: `profile`, `aot-compile`, `run`, `bench`, `jit-optimize`, `proposals`, and more\n- **[docs\u002Farchitecture.md](docs\u002Farchitecture.md)** — subsystem map, data flow, and on-disk layout\n- **[docs\u002Fgrade-protocols.md](docs\u002Fgrade-protocols.md)** — grader protocol reference for custom `grade.py` task graders\n- **Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.03088\n\n## Citation\n\nIf you use SkVM in your research, please cite:\n\n```bibtex\n@article{chen2026skvm,\n  title={SkVM: Revisiting Language VM for Skills across Heterogenous LLMs and Harnesses},\n  author={Chen, Le and Feng, Erhu and Xia, Yubin and Chen, Haibo},\n  journal={arXiv preprint arXiv:2604.03088},\n  year={2026}\n}\n```\n","SkVM是一个用于编译和运行大语言模型代理技能的虚拟机系统，能够在异构模型和框架之间实现技能的可移植性。其核心功能包括性能分析、AOT编译、JIT优化以及基准测试，旨在通过多阶段处理提升技能执行效率与质量。该工具特别适用于需要在不同环境或模型上高效部署和优化AI代理技能的场景，如开发跨平台的智能助手应用。基于TypeScript构建，并采用MIT许可证开放源代码。",2,"2026-06-11 02:40:47","CREATED_QUERY"]