Skip to content

Releases: inchidev/llll

L4 0.3.12

Choose a tag to compare

@github-actions github-actions released this 30 Oct 12:30
f312d0b

L4 0.3.12

This release finishes the Telegram Shell after its first real-device test: it opens full screen on phones, and each Telegram notification arrives once. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.12. It stays on the server-v2 lineage and adds no migrations. Customer Servers update only when their operator chooses an update.

Telegram Shell

  • On iOS and Android, @L4_agent opens the Shell full screen, clear of Telegram's controls, the notch and the home indicator. A swipe down scrolls the chat instead of closing the app, and Telegram's header and bottom bar match the Shell's black.
  • Telegram's launch data no longer stays in the Shell's address after it opens.

Telegram notifications

  • A Server that retried a Telegram notification after losing llll.gg's answer could send it twice. Each delivery now has its own key, and llll.gg sends it once. This needs the Server on 0.3.12; earlier Servers keep working without it.

Shell

  • On phones and in Telegram, Add a Server names its tabs Connect, Cloudflare and VPS, so they fit beside the Server rail.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade.

L4 0.3.11

Choose a tag to compare

@github-actions github-actions released this 30 Oct 11:14
5c54801

L4 0.3.11

This release makes Telegram a full Shell: open L4 from @L4_agent, keep your Servers there, create new ones and get notifications from them in Telegram. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.11. It stays on the server-v2 lineage and adds one migration, 0003_telegram_notifications. Customer Servers update only when their operator chooses an update.

Telegram Shell

  • @L4_agent opens the Shell on My Servers, like the installed app. It keeps clear of Telegram's controls, the notch and the home indicator, including the embedded Server.
  • Create → Cloudflare offers Continue in browser, because Cloudflare sign-in does not work reliably inside Telegram. When the Server is ready, Open in Telegram next to it brings it back to the Telegram Shell.
  • You sign in on each Server with its own account, as on the web. L4 keeps no Telegram accounts.

Telegram notifications

  • In the Telegram Shell, Settings → Telegram notifications asks Telegram to let @L4_agent message you, then sends mentions, direct messages, Live sessions and email as a short message with an Open button.
  • Messages name only the Server, never what was said. The Server stores an opaque delivery token and never learns your Telegram ID; llll.gg keeps no list of subscriptions.
  • Blocking the bot, or turning the switch off, removes the subscription. Telegram notifications need no Web Push keys and work next to Web Push on your other devices. See Telegram.

Git

  • Server settings → Git → Gitea names the token scopes L4 needs.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade. The update applies 0003_telegram_notifications, which adds three columns to push subscriptions; the Telegram notifications switch appears once the Server runs 0.3.11.

L4 0.3.10

Choose a tag to compare

@github-actions github-actions released this 30 Oct 06:26
7914973

L4 0.3.10

This release connects Gitea, and Forgejo, as a second Git provider next to GitHub. Agents can take a Task to a draft pull request in a Gitea repository. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.10. It stays on the server-v2 lineage and adds no migrations. Customer Servers update only when their operator chooses an update.

Gitea

  • Server settings → Git → Gitea connects a Gitea or Forgejo bot account by its access token. L4 checks the token with Gitea, then stores it encrypted on the Server. Agents and Compute Nodes never receive it. See Repositories and code work.
  • Repository environments, Agent repository and pull request reads, code proposals, required checks and Factory publication work with Gitea repositories.
  • Gitea cannot limit a token to chosen repositories, so the Server limits every request to one repository and one kind of operation. The bot account's collaborator access decides which repositories L4 can reach.
  • A draft pull request in Gitea has a WIP: title. Required checks match commit statuses, which Gitea Actions reports per job.
  • Agents cannot add executable files in Gitea, and Factory publication stops unless Gitea writes exactly the approved commit.
  • Role repository scopes name Gitea repositories by their connection, so they never match a GitHub repository with the same number.

Compute Nodes

  • A Docker Node fetches Gitea source through the Server, with a permission that ends with its job. This needs the 0.3.10 workspace image; older images refuse Gitea sources and keep working with GitHub.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade. Update Docker Compute Nodes to the 0.3.10 workspace image before running Gitea Tasks on them.

L4 0.3.9

Choose a tag to compare

@github-actions github-actions released this 30 Oct 04:52
b97a88a

L4 0.3.9

This release finishes the Coolify install: Coolify generates the first Owner's password, and the docs carry the Compose file to copy. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.9. It stays on the server-v2 lineage and adds no migrations. The Server itself is unchanged from 0.3.8, so updating a Server is optional. Customer Servers update only when their operator chooses an update.

Coolify

  • The Coolify template sets ADMIN_PASSWORD from a generated SERVICE_PASSWORD_ADMIN. The first start creates the Owner, so you sign in with ADMIN_EMAIL and that password, with no setup claim. Change the password after you sign in. To choose it yourself, set SERVICE_PASSWORD_ADMIN (at least 12 characters) before the first deploy.
  • Run a Server on Coolify includes the whole Compose file with a Copy button, so you no longer need to open GitHub.

Docs

  • Copy buttons on code blocks are always visible on touch screens.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade. A Coolify service created from an earlier template keeps its own Compose file: to create the Owner without a claim, replace its ADMIN_PASSWORD line with ADMIN_PASSWORD=$SERVICE_PASSWORD_ADMIN before the first deploy.

L4 0.3.8

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:06
2a63ae7

L4 0.3.8

This release makes it easier to claim a self-hosted Server, especially on Coolify. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.8. It stays on the server-v2 lineage and adds no migrations. Customer Servers update only when their operator chooses an update.

Claim a self-hosted Server

  • /setup has a Setup token field. On Docker, Coolify or the VPS, open /setup and paste SETUP_TOKEN (on Coolify, SERVICE_PASSWORD_64_SETUPTOKEN). You no longer have to build a /setup#claim=… link by hand. A rejected token returns you to the field with the error. The links that the installers open still work.
  • To skip the claim, set ADMIN_PASSWORD (at least 12 characters) before the first start. The Server creates the Owner with ADMIN_EMAIL and that password, so you can sign in right away. In the Coolify template this is an optional variable. The VPS installer takes it as LLLL_ADMIN_PASSWORD and prints no claim link. Change the password after you sign in. Later changes to the variable have no effect.
  • Container logs show the Server's address after start, and how to finish setup.

Coolify

  • If Coolify includes the container port in the generated URL, PUBLIC_ORIGIN no longer keeps :8080. Before, that port made sign-in and setup fail with "Origin mismatch".
  • "Origin mismatch" now names the page's address and the Server's address. If those two match, it says the reverse proxy changed the Host or scheme.

Sign-in page

  • The left side of the sign-in and setup pages shows only the Server's mark.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade.

L4 0.3.7

Choose a tag to compare

@github-actions github-actions released this 29 Oct 18:50
1f2d00e

L4 0.3.7

This release fills the blog on llll.gg and makes the site easier for agents and crawlers to read. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.7. It stays on the server-v2 lineage and adds no migrations. The Server itself is unchanged from 0.3.6, so updating a Server is optional. Customer Servers update only when their operator chooses an update.

Blog

  • llll.gg/blog has 27 new articles on running a Server of your own, Agents as Members, backups, mail, MCP and leaving hosted workspaces.

For agents and crawlers

  • /blog.md and /changelog.md list every post and release with a link to its Markdown copy, and /blog and /changelog return them for Accept: text/markdown. Before, only single posts and releases had a Markdown copy.
  • The home page answers Accept: text/markdown with /llms.txt.
  • robots.txt declares Content Signals: search and AI input are allowed, AI training is not.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade.

L4 0.3.6

Choose a tag to compare

@github-actions github-actions released this 29 Oct 16:37
e34ef48

L4 0.3.6

This release puts the documentation, a changelog and a blog on llll.gg, with Markdown copies of every page for agents, and polishes updates, Runs and avatars after the 0.3.4 rollout. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.6. It stays on the server-v2 lineage and adds no migrations. Customer Servers update only when their operator chooses an update.

Docs, changelog and blog on llll.gg

  • llll.gg/docs has user documentation for running and using a Server: getting started, a Cloudflare section (what the installer creates, access, costs, domain, mail, updates, backups and removal), self-hosting on a VPS, Docker and Coolify, Agents and MCP, and guides. Search opens with ⌘K.
  • llll.gg/changelog has a page for every published release and an RSS feed. llll.gg/blog is new.
  • For agents, every docs, changelog and blog page is also Markdown: add .md to its address or request it with Accept: text/markdown. /llms.txt, /docs/llms.txt and /docs/llms-full.txt index them. Each page can be copied or opened in Claude or ChatGPT.
  • Pages have their own titles, descriptions, canonical addresses and structured data, and there is a sitemap. Unknown addresses on llll.gg now return a 404 page instead of the landing page.

Updates

  • One card shows the installed version, the update's progress (backup → update → verify) and the result. The release picker hides while an update runs, and Cloudflare access is a compact row at the bottom.
  • Load the new interface waits for the new version to finish downloading, so it no longer reloads into the old interface. Errors show on the card.

Runs, settings and avatars

  • Retry, Stop and both downloads sit in one row under a Run's status. A Run blocked by a disabled or removed Compute Node names the node and links to Compute settings.
  • The settings close button stays in view while scrolling.
  • The avatar generator opens in a dialog, shows which model draws, and Use this picture works. The agent editor previews the picked picture before saving.
  • The agent editor's external-agent hint and the installer's Cloudflare text describe the current settings.

For operators

  • Server Previews report Server-Timing for D1 and Durable Object waits. It is off for production and customer Servers; see SERVER_TIMING in the preview docs.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Server settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade.

L4 0.3.5

Choose a tag to compare

@github-actions github-actions released this 29 Oct 15:15
8d7e408

L4 0.3.5

This release publishes the Server as a Docker image for Coolify and Docker Compose, and gives a Server's own installed app notifications, an unread badge and its own name and icon. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.5. It stays on the server-v2 lineage and adds no migrations. Customer Servers update only when their operator chooses an update.

Docker image and Coolify

  • Stable releases are published as ghcr.io/inchidev/llll for linux/amd64 and linux/arm64, tagged with the exact version (0.3.5), its minor line (0.3) and latest. Prereleases are not published as images.
  • The Coolify template runs that image. It uses latest unless LLLL_VERSION pins a version. To update, redeploy or change the version; Coolify owns the domain and TLS.
  • Migrations only go forward. A container refuses to start an image older than the release that last migrated its data, before it changes anything.
  • On a Docker Server, Settings → Deployment → Updates says updates are managed where the Server is deployed and shows when a newer stable release exists.

Installed Server app

  • A Server's installed web app gets notifications while it is closed, and its icon shows the unread conversation count.
  • The Server creates its push keys automatically and keeps keys an operator provided. Notifications are turned on from a tap or click.
  • The installed app and link previews use the Server's own name and icon.

Update to this release

A Cloudflare Server that keeps Cloudflare access updates from Settings → Deployment → Updates by itself. A Docker Server updates by its image tag in Coolify or Docker Compose; the VPS installer uses llll upgrade.

L4 0.3.4

Choose a tag to compare

@github-actions github-actions released this 29 Oct 14:05
52561d7

L4 0.3.4

This release adds AI functions for pictures and voice, lets members bring and share their own ChatGPT plan, and adds external agents that run on their own computer. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.4. It stays on the server-v2 lineage and adds one forward migration (0002_agent_webhooks), applied automatically during the update. Customer Servers update only when their operator chooses an update.

Pictures and voice for agents

  • Avatars: in Models → Defaults, assign an OpenRouter model that draws images, such as Nano Banana. Profile and agent settings then offer Generate: describe the picture, add up to three reference images, keep L4 style for a toy-like character in black and white, preview it and use it.
  • Image descriptions: an agent whose model cannot see images gets a description from a vision model instead.
  • Voice transcription: voice messages reach agents as text.
  • Each function lists only models that can do the job. Open a provider and save it once so models chosen earlier show what they can do.

Models and ChatGPT

  • Members with Use agents can connect their own ChatGPT plan in Settings → Models. The member who connects it can share it with everyone on the Server; only they can change that.
  • Workers AI appears with the other providers, and the Owner can turn it off or choose which models agents see.
  • Providers show their logos.

Agents

  • External agents: an agent can work on its own computer. A mention or direct message wakes its webhook, and it answers and completes the Run through MCP.
  • The Agents page shows each agent as a large figure; a click opens the conversation.
  • Agents without a picture get a generated L4 block avatar.
  • A Run that is refused now says which check refused it.

Settings

  • Settings scroll anywhere in the pane, not only over the content.
  • Clearer texts for personal connections, the repository setup step and instruction examples.

Update to this release

A Server that keeps Cloudflare access updates from Settings → Deployment → Updates by itself; you can close the page while it runs.

L4 0.3.3

Choose a tag to compare

@github-actions github-actions released this 29 Oct 09:16
54f4eda

L4 0.3.3

This release lets a Cloudflare Server manage its addresses, mail domains and Live with the Cloudflare access it keeps, and fixes calls that failed on every Cloudflare Server. Landing, Shell, installer, Server, portable runtime and Docs share 0.3.3. It stays on the server-v2 lineage with no new migrations, so a 0.3.x Server can update in place. Customer Servers update only when their operator chooses an update.

Update from Settings

A Server that kept Cloudflare access in 0.3.2 updates to this release from Settings → Deployment → Updates, by itself. You can close the page while it runs.

Without the installer

With Cloudflare access kept on the Server:

  • Server address: add an address, make it primary or remove it directly in Settings.
  • Mail: connect and disconnect mail domains in Settings → Mail. This sets up Cloudflare Email Routing and Email Sending for the domain.
  • Live: connect using the Server's Cloudflare access; no separate API token is needed.
  • The Server renews its Cloudflare access every week, so it keeps working between updates.

Moving files to R2 and setting up a compute node still use the official installer. Without kept access, everything works as before.

Fixes

  • ChatGPT sign-in, agent web search and Lizard calls failed on Cloudflare Servers because of an unsupported fetch option. They work again.
  • Updating through the official installer opens its own page for that Server, without the create tabs.