Agent Skills for Synalinks

August 7, 2026 · View on GitHub


This repository contains skills for coding agents that read the open Agent Skills format (SKILL.md): Claude Code, Codex, OpenCode, pi, and others.

What are Agent Skills?

Agent Skills are reusable instructions, in a plain SKILL.md file, that teach a coding agent how to perform a task the way you want it done. The format started at Anthropic and is now an open standard read by agents across the ecosystem, so one skill works in every agent that supports it, unmodified.

The goal of Synalinks skills is to teach coding agents to use the Synalinks framework correctly. Synalinks is Keras-inspired, so without guidance LMs tend to mix Keras / LangChain / DSPy syntax, producing plausible-looking but broken code. These skills constrain the agent to idiomatic Synalinks usage.

This repo ships a single skill, synalinks, that covers the whole framework. The agent auto-activates it based on its SKILL.md description. The SKILL.md is a scannable overview, organized into one section per slice of the framework, each pointing to a runnable script (and its captured run log) and a deep-dive reference doc:

SectionWhat it covers
CoreDataModel, Field, Input, JSON operators (+ & | ^ ~), synalinks.ops, configuration, LanguageModel/EmbeddingModel basics
ProgramsProgram class, four building APIs (Functional / Sequential / Subclassing / Mixed), multi-input/output graphs, build/call lifecycle, save/load, summary, get_module, plot_program, custom serialization
ModulesGenerator, ChainOfThought, SelfCritique, Identity, PythonSynthesis, SequentialPlanSynthesis, custom modules via subclassing
Control flowDecision, Branch, parallel branches, self-consistency, XOR input/output guards, And/Or modules, branch merging
AgentsFunctionCallingAgent, RLM, DeepAgent, Tool definitions, MCP integration (MultiServerMCPClient), subagents, trajectories
KnowledgeKnowledgeBase (DuckDB), EmbedKnowledge, UpdateKnowledge, RetrieveKnowledge, RAG/KAG, hybrid search, Entity/Relation graphs
Trainingcompile() / fit() / evaluate() / predict(), callbacks, ProgramCheckpoint, training workflow
RewardsExactMatch, CosineSimilarity, LMAsJudge, ProgramAsJudge, F1Score, custom rewards/metrics, masking
OptimizersRandomFewShot, OMEGA, Dominated Novelty Search, mutation/crossover, quality-diversity tuning
ProvidersProvider prefixes (openai, anthropic, groq, openrouter, cohere, deepseek, together_ai, bedrock, doubleword, hosted_vllm, ...), local OpenAI-compatible servers (LMStudio/vLLM/ollama), OpenAI-compatible setups (e.g. OpenRouter embeddings via api_base)
DatasetsBuilt-in datasets (gsm8k, hotpotqa, arcagi), custom iterable datasets, visualization (plot_program, plot_history, plot_metrics_*)

The skill folder contains:

  • SKILL.md: frontmatter + scannable usage guide for the whole framework
  • scripts/: runnable example scripts (each docstring states its Usage: and Run log:)
  • references/: deep-dive reference docs plus the captured run logs (*.log)

Install

The recommended way to install this skill is the official skills CLI (npx skills). It clones this repo, discovers the synalinks skill, and wires it into your agent's skills directory: no manual cloning, copying, or zipping required. It needs Node.js (the npx that ships with it); nothing else.

The CLI detects the agents installed on your machine, so the same command works whether you use Claude Code, Codex, OpenCode, pi, or another supported agent. The examples below use Claude Code; see Other agents to target a specific one.

Quick start

synalinks is a skill for the synalinks Python library, so the natural place to install it is the project where you use synalinks, so the agent gets idiomatic-synalinks guidance exactly where you write synalinks code. Project scope is also the CLI default, so just run this from your project root:

npx skills add SynaLinks/synalinks-skills --skill synalinks

This installs into the current project (each agent reads it from its own directory, e.g. <repo>/.claude/skills/ for Claude Code). Commit the generated skills-lock.json (see Updating) so teammates and CI resolve the same skill content.

Want it in every project instead of per-project? Install globally:

npx skills add SynaLinks/synalinks-skills --skill synalinks --global

That installs to the agent's user-level skills directory (~/.claude/skills/ for Claude Code). By default the CLI symlinks the skill; pass --copy to copy the files instead.

List what's in the repo without installing anything:

npx skills add SynaLinks/synalinks-skills --list

Run npx skills add SynaLinks/synalinks-skills with no flags for an interactive picker.

Other agents

The skills CLI supports 70+ agents. Target one (or all) explicitly with -a/--agent:

npx skills add SynaLinks/synalinks-skills --skill synalinks -a claude-code   # Claude Code
npx skills add SynaLinks/synalinks-skills --skill synalinks -a codex         # Codex
npx skills add SynaLinks/synalinks-skills --skill synalinks -a opencode      # OpenCode
npx skills add SynaLinks/synalinks-skills --skill synalinks -a pi            # pi
npx skills add SynaLinks/synalinks-skills --all                              # everything, all agents

Passing an unknown name prints the full list of valid agent slugs, which currently includes cursor, gemini-cli, github-copilot, windsurf, zed, crush, goose, junie and roo, among others.

The skill content is identical in every case: one SKILL.md, no per-agent variants to maintain.

Verify

npx skills list            # list installed skills

In Claude Code you can also run the /skills slash command; the synalinks skill should appear. Agents auto-activate it for your task based on the SKILL.md description field, so there is nothing to select manually.

Claude.ai (web) and Claude Desktop

Web/Desktop uploads expect a single .skill archive (a zip of the skill folder with SKILL.md at the root). Clone the repo and build the archive:

git clone https://github.com/SynaLinks/synalinks-skills.git
cd synalinks-skills/skills
zip -r ../synalinks.skill synalinks

Then in the Claude interface, click the skill icon (🧩), choose "Upload skill", and upload the .skill file. See Using skills with Claude for the latest UI walkthrough.

Updating

The synalinks skill is not semver-versioned: it tracks the main branch of this repo. "Latest" always means the current main (the CLI installs from the default branch's HEAD; there is no version tag to pin). Update with:

npx skills update                      # update every installed skill to latest
npx skills update synalinks            # just this skill

Use -g/--global or -p/--project to scope the update. The CLI re-fetches this repo, recomputes the skill's content hash, and re-installs only if it changed from what's recorded.

Lockfile (reproducible installs)

Installing writes a skills-lock.json in your project that pins each skill to a source repo + a SHA-256 content hash, e.g.:

{
  "version": 1,
  "skills": {
    "synalinks": {
      "source": "SynaLinks/synalinks-skills",
      "sourceType": "github",
      "skillPath": "skills/synalinks/SKILL.md",
      "computedHash": "<sha256-of-the-skill>"
    }
  }
}

Commit skills-lock.json so teammates get the exact same skill content. npx skills update advances the recorded hash to the latest main; to restore the pinned state instead of updating, use:

npx skills experimental_install        # reinstall skills from skills-lock.json

For Claude.ai / Desktop (which take a .skill archive rather than the CLI), regenerate the archive and re-upload it:

cd synalinks-skills/skills && zip -r ../synalinks.skill synalinks

Uninstall

npx skills remove synalinks

Add -g/--global to remove a globally-installed skill. For Claude.ai / Desktop, remove the skill from the skill icon (🧩) menu.

License

These skills are licensed under Apache 2.0, like Synalinks framework.

See the LICENSE file for full details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknoledgement

These skills have been created by Ramiro Salas the CTO of Hexatropian an active early member of Synalinks community.