Kody weekly: Skills, apps, and jobs become packages
Kent C. Dodds · · 3 min read
Here is what shipped in Kody from April 18 to April 24, 2026. This week Kody moves to one saved primitive, the package, and the tools around it (repo editing, jobs, and search) catch up. Two changes need action: see Breaking changes below.
Skills, apps, and jobs become packages
What shipped
Saved skills and apps now run through a package-first runtime. A package is a
repo-backed module rooted at package.json: standard fields such as name and
exports describe what it offers, and package.json#kody holds the Kody
metadata, including an id, a description and tags for search, an optional
hosted app, and optional package-owned jobs. Package exports are importable
across packages by full name, hosted package apps serve nested routes, and
published sources are cached so apps load without reopening a repo session on
every request.
Why it matters
Instead of separate stores for skills, apps, and schedules, everything you build with your agent lives in one versioned unit you can read, edit, and publish like any other code. Search, execute, repo editing, and app hosting all work on the same thing, so your agent has one place to look before it builds something new.
Example
A minimal package.json for a saved package:
{
"name": "@my-scope/weekly-digest",
"exports": { "./summarize": "./src/summarize.ts" },
"kody": {
"id": "weekly-digest",
"description": "Summarizes the week's open pull requests.",
"tags": ["github", "digest"]
}
}Another package or execute call imports its export as
kody:@my-scope/weekly-digest/summarize.
Docs: Package authoring · PRs: #221, #229, #235
More updates
- Packages: Adds
repo_edit_flow, which opens or reuses a repo session, applies edits, runs checks, and optionally publishes in one call. Sessions can open by skill, job, or app identity, and edit details are opt-in withinclude_edits. (#218, #234, #236) - Packages: Publishes new sources straight into their repo on first publish, and lets repo-backed jobs and skills import local ES modules. (#194, #210, #212)
- Automations: Adds
job_schedulefor standalone repo-backed jobs on a one-off, interval, or cron schedule without creating a package first.job_list,job_get, andjob_run_nowinspect and trigger jobs, and jobs run from published snapshots. (#237, #238, #239, #251) - Automations: Supports an opt-in
repoCheckPolicyso a repo-backed job can run despite typecheck-only failures, including a one-off override onjob_run_now. (#207) - Packages: Adds realtime websocket sessions for package apps and jobs, with
session_emit,session_broadcast, andsession_list, andrealtimeinkody:runtime. (#258) - Apps: Adds
kodyWidget.appBackend.fetch(...)andresolveUrl(...)for authenticated calls from a saved app to its backend, and checks backends when you save. (#219) - MCP: Improves
searchwith query understanding and task-aware ranking, richer hints for package exports, jobs, and apps, and timing metadata onsearchandexecuteresponses. (#246, #252, #242, #230) - Credentials: Adds an official guide for secret-backed integrations:
research the auth, collect secrets with
/connect/secret, run a smoke test, then build the package. (docs, #232)
Fixes
- Execute: Fixes
import { ... } from 'kody:runtime'in module-form execute code, including fenced modules. (#250) - Automations: Fixes repo-backed jobs and skills that failed to run after migration because of entrypoint paths, first-publish auth, or checker errors. (#198, #200, #203, #208)
- Automations: Fixes scheduled and recurring jobs losing or reusing the wrong repo session. (#217, #247)
- Packages: Fixes package-backed jobs that could not load right after
repo_publish_session. (#253)
Breaking changes
- Packages: Saved packages are imported only by their full
package.json.name, and the leaf of that name must matchkody.id. Thekody.idshorthand no longer resolves. Action: update imports tokody:@scope/package-name/exportand rename packages whose name and id differ. (docs, #259) - MCP: The
page_to_markdowncapability is removed. Action: fetch pages from your own code inexecuteor a package instead. (#192)
Try it
Ask your agent to turn one of your saved skills into a package with
repo_edit_flow, following
Package authoring.
Questions or feedback? Join us on the Kody Discord.