~/lichen.page

quickstart

cargo install --git https://codeberg.org/notplants/lichen.git lichen-cli
lm serve
# opens at http://127.0.0.1:9000/

atproto record lexicon

{
  "$type": "net.commoninternet.lichen.site",
  "domain": "myblog.example.com",
  "repo": "pds://alice.bsky.social/myblog.example.com",
  "createdAt": "2026-03-14T09:12:00Z"
}

agent workflow via lichen-cli

This is an explanation of a workflow for using a local ai agent for working on css and static site generator internals with a remote lichen server instance via the api.

  1. Create an account on a server such as dash.lichen.page by logging in with ATProto.

  2. Generate an API token from your dashboard settings page.

  3. Give the token to your local AI agent, along with the lichen-cli skill. The agent can then clone your site, edit templates and CSS, and push changes to the remote.

lm auth login --token <your-token>
lm clone mysite.lichen.page
  1. Use the agent to update the styling of your pages, work with layout templates, or configure your static site generator. Use the web UI at dash.lichen.page to write and edit the actual content of your pages.

  2. Use the "share" button in the web ui to easily share a link with collaborators so they can edit content together with you on the site in realtime.

site management with lichen-cli

# login to a server
lm auth login --server https://dash.lichen.page

# list your sites
lm sites list

# clone a site locally
lm clone mysite.lichen.page

# push local changes
lm push mysite.lichen.page

# pull remote changes
lm pull mysite.lichen.page

file structure

Sites are stored at ~/.lichen/<domain>/. Each site is a git repo with this structure:

~/.lichen/mysite.lichen.page/
  content/        # markdown files and assets
    index.md
    assets/
      stylesheet.css
  templates/
    layout.html   # page layout template

Edit files in content/, commit with git, then lm push to publish.

Full documentation is in the README.


← back to index