Publishing and versions
Draft, then published
| State | Who sees it | How you get there |
|---|---|---|
| Not on Kol | Nobody | kol init |
| Draft | Only you. A companion appears in your Companions list in the app, so you can talk to it by voice | kol push |
| Published | Everyone, in the marketplace. A service goes online with its own Kol ID | kol publish |
| Unpublished | Out of the marketplace. People who already have it keep it | kol publish --off |
kol push # save as a draft (creates it the first time)
kol publish # push, then publish
kol status # where it stands, and whether this folder has unpushed changesVersions
Every kol push that changes something makes a new version (the version number in kol status). Nothing changes when nothing changed, so you can push as often as you like.
A published AI changes for everyone at once
There are no staged versions yet: when you change a published AI, every conversation after that uses the new version. That's why kol push refuses to change a published AI. Do it on purpose:
kol test && kol publish # or: kol push --liveKeep your project in git, and tag what you publish. To go back, check out the old version and kol publish it.
Which AI is this folder?
After the first push, .kol/project.json remembers which AI on Kol this folder is (one per host). It's git-ignored, so a fresh clone pushes as a new AI. To keep updating the same one from another machine, copy .kol/project.json along, or start from a fresh kol push and unpublish the old one.
kind can't change after the first push. To turn a companion into a service, delete .kol/project.json and push it as a new AI.
Before you publish
kol validateandkol testpass.- You talked to the draft by voice in the app at least once. Voices sound different from text.
- The name, tagline and icon say clearly what it does.
- It follows the content rules.
After
kol status # installs, calls, minutes, requests
kol requests # what callers asked it to send you
kol logs # live: try-outs, voice tests, new requests