Library
ene lib synchronizes reusable skills and personas through a Git repository.
It manages authored resources under the current project's ./.ene/skills/ and ./.ene/personas/.
The bundled library skill lets the agent operate this feature for you.
Configure the repository
Set an accessible repository URL in ~/.ene.yaml:
ene_lib: git@github.com:username/ene-resources.gityaml
The repository uses its main branch and stores resources under skills/<name>/ and personas/<name>/.
Ene uses your existing Git and SSH credentials. An empty repository is initialized by the first upload.
Typical Use
Let say you created a skill when working on project A, and want to use it in project B, you can simply:
# project A
cd /path/to/A
ene lib upload <my-skill>
# project B
cd /path/to/B
ene lib install <my-skill>
# if you updated the skill, the update command will do the sync:
ene lib update # sync local changes to the remote and download any remote changesbash
Commands
Skills are the default resource kind:
ene lib list [pattern]
ene lib list [pattern] --local
ene lib install <name> [<name> ...]
ene lib update [<name> ...]
ene lib update <name> --force
ene lib upload <name> [<name> ...]
ene lib upload <name> --force
ene lib remove <name> [<name> ...]
ene lib remove <name> --localbash
Add --kind persona to operate on personas:
ene lib list --kind persona
ene lib install my-coder --kind persona
ene lib upload my-coder --kind personabash
listshows remote resources and descriptions;--locallists project resources.installcopies a remote resource into the project and never overwrites an existing local resource.updatesynchronizes selected installed resources, or all installed resources when no names are supplied.uploadpublishes project resources.--forcereplaces an existing remote resource.removedeletes remote resources.--localdeletes only project copies.
Remote resources are not available to an agent until installed.
After installing or updating a skill, run /skills reload; for a persona, run /persona reload.
Synchronization and conflicts
Each installed resource records its last synchronized tree in .ene-lib.json.
This base allows Ene to distinguish local-only changes, remote-only changes, and conflicts even on another machine.
A normal update uploads local-only changes and downloads remote-only changes. If both copies changed, it stops and asks you to merge both versions into the project-local resource. Validate that merged copy, then run:
ene lib update <name> --forcebash
Repository checkouts are cached under ~/.ene/library/.