Repository navigation
Releases: noneym/easylopster.com
Release list
easylopster v1.11.0
[1.11.0] - 2026-10-31
Added
- easylopster Node for macOS: the same tray app as on Windows, as a menu-bar app (no Dock icon) for
Apple Silicon and Intel Macs (.dmgand.zipon the release). Pairing, shared folder, shell
commands (bash), notifications, clipboard, background jobs and full Brave control work as on
Windows. Brave is found in /Applications or/Applications and, when missing, installed with/Applications without admin
Homebrew or from Brave's DMG (arm64 or Intel) into /Applications (
rights). "Open at login" uses a macOS login item; the menu-bar icon is a template image that
follows light and dark mode. - The app is ad-hoc signed, not signed with an Apple Developer ID, so macOS cannot install updates
by itself: the Mac app checks for new versions, notifies, and "Download" opens the release page.
Windows keeps installing updates automatically. - Nodes pages: macOS downloads (Apple Silicon / Intel) next to the Windows installer, with how to
open an unsigned app (Privacy & Security → Open Anyway, or
xattr -dr com.apple.quarantine "/Applications/easylopster Node.app"). The node page shows the
same install card with the pairing code filled in. - Release workflow builds the macOS app on macos-latest and attaches the DMGs, zips and latest-mac.yml.
Fixed
- The install card's default gateway address (gw.easylopster.com).
easylopster v1.10.0
[1.10.0] - 2026-10-31
Added
- Storage: connect your own S3-compatible bucket (Amazon S3, Cloudflare R2, MinIO, Backblaze B2 or
any S3 endpoint) on the new Storage page; the connection is tested for read and write and the
keys are stored encrypted. The page is a file browser over the bucket (folders, upload up to
200 MB per file through the server, download links, delete, new folder) with usage figures. - Agents get a shared drive:
storage_list,storage_read,storage_write,storage_delete,
storage_copy(workspace ⇄ storage, binary files included) andstorage_link(24-hour download
link) work on the owner's bucket and are shared by all of the owner's agents. - Backups: per agent, a schedule (daily at a time, weekly, or every N hours, in the owner's time
zone), retention (delete after N days, always keep the newest N), optional conversations and
inbox. Archives are zips withworkspace/,settings.json(model, policies, automations,
allowlist, linked servers and nodes; never secret values) andmanifest.json, written to
backups/<agent>/in the bucket. The Backups page lists them with download, restore (files, or
files + settings and automations) and delete, plus "Back up now". The gateway runs due backups
once a minute (BACKUPS_ENABLED=0turns the scheduler off).
Changed
- "Bots" are now "Agents" across the dashboard (menu, pages, copy) and live under
/dashboard/agents; old/dashboard/botslinks redirect. The database model keeps its name.
easylopster v1.9.1
[1.9.1] - 2026-10-31
Added
- Import from OpenClaw: "Import API keys (agent tokens)" and "Import Telegram token" checkboxes;
unchecked values never leave the machine. When the import ends without a usable key or without
Telegram, a "Finish setup" panel on the same page asks for the API key + model (OpenClaw's model
preselected when the key has it) and the Telegram token. A missing key no longer aborts the import. - Bots → Manage → Telegram: connect a web-only bot to Telegram, switch an existing bot to another
BotFather token (webhook and command menu re-registered, the old webhook dropped), or disconnect
Telegram and keep the bot in the web chat. - The uploader parses real openclaw.json files (JSON5: comments, trailing commas, unquoted keys).
Fixed
- A session cookie whose session was deleted looped between /login and /dashboard.
easylopster v1.9.0
[1.9.0] - 2026-10-31
Added
- Import from OpenClaw with one command: New bot → "Import from OpenClaw" (or a bot's Import page →
"Run a command on the OpenClaw machine") gives a one-hour, single-use command
(curl -fsSL https://easylopster.com/import.sh | bash -s -- TOKEN, PowerShell variant for
Windows). On the OpenClaw machine it reads openclaw.json (bot name, Telegram token, model, API
keys from the config, env vars or legacy auth profiles) and the workspace, creates the bot here
with its keys, and uploads persona, memory, heartbeat, skills and scripts in batches. The page
follows it live: step bar (command ready → connected from → uploading → done), per-category
bars, every file with written/skipped state, what was created (bot, @username, model, keys) and
notes on anything that needs a manual step. Served scripts: /import.sh, /import.ps1, /import.mjs. - Web-only bots: the Telegram token is optional when creating a bot; without one the bot lives in
the web chat and a token can be added later. The new-bot form explains how to get a token from
@Botfather step by step. - "Refresh model list" wherever a key is used: the new-key form asks the provider for its models as
soon as a key is pasted (and on demand), the key page and bot settings reload the list from the
provider with one click. - Nodes pages explain what a node is and how to install the agent: direct download of the current
Windows tray installer, the npx one-liner and the Docker command, on the nodes list, the new-node
page and a node's page. - Dashboard forms give visible feedback everywhere: spinner while saving, a "Saved" tick, a toast
for success and errors, and a scroll to the first field error. - Telegram voice notes are transcribed with the platform's
OPENAI_API_KEYwhen the account has no
OpenAI key of its own (OPENAI_TRANSCRIBE_MODELpicks the model). - Landing page lists the browser, live status, background jobs, import and self-update features.
Fixed
- Settings page hydration mismatch from time-zone offsets rendered on the server.
easylopster v1.8.0
[1.8.0] - 2026-10-29
Added
- Live activity status in every chat: while a reply is being worked on, Telegram shows one status
message (edited in place, deleted when the answer arrives) listing the tool calls of the run with
a short argument summary (URL, command, path), finished steps with their duration, the running step
with a ticking elapsed time and a thinking/writing line. It is shown in all streaming modes, not
only "progress", so a long browser or exec step is never silent. The web chat shows the same step
list with elapsed times.
Changed
- Tool progress events carry the tool-call id, an argument preview, duration and success flag
(failed tool calls are marked⚠️ ).
easylopster v1.7.0
[1.7.0] - 2026-10-29
Added
- Windows tray app auto-update: the packaged app checks GitHub releases 30s after start and every
6 hours, downloads the new installer in the background and installs it on the next restart
(tray menu "Restart to update", "Check for updates"; the Settings window shows the state). The
release workflow now publishes latest.yml and the blockmap next to the installer. - Automatic Brave installation: when browser control is enabled (or a bot first uses a browser
tool) and brave.exe is missing, the tray app installs Brave by itself, with winget when present
and otherwise with Brave's installer run silently. A browser tool called meanwhile returns
"installing, try again in a minute"; the Settings window has an "Install Brave" button too.
easylopster v1.6.0
[1.6.0] - 2026-10-26
Added
- Browser network capture (
browser.network): every tab records the requests the page makes
(method, URL, type, status, size, timing); the tool lists them with URL/type filters, returns one
response body by id (JSON APIs, HTML fragments, up to 200k chars) or clears the log. Reading a
page's own API calls is usually easier than scraping its DOM. - Multiple Brave profiles (
browser.profiles): list / create / close / delete named profiles, each
with its own cookies and logins; every browser tool takesprofile=<name>(default = the existing
profile). Deleting a profile needs approval. - Drag and drop (
browser_dragonbrowser.interact): mouse drag from one element to another or
to coordinates; HTML5 drags are intercepted and completed with dragEnter/dragOver/drop so sortable
lists, kanban boards and drop zones work. - Clipboard (
system.clipboard, tray app): read the PC clipboard text (needs approval) or write to it. - Background jobs survive node restarts: the job list is kept in
jobs/index.json; after a restart
a still-running process is picked up again and a finished one is reported with an unknown exit code.
easylopster v1.5.1
[1.5.1] - 2026-10-26
Added
- Background jobs on nodes:
execwithbackground=truestarts a detached process that survives
the command timeout, writes its output tojobs/<id>.login the shared folder and returns a job
id; the newjobstool (capabilityexec.jobs) lists, checks, tails and kills them. The exec
description now tells the model to use it for downloads, installs and builds. - Browser cookies:
browser.cookieslists the current site's cookies (no values unless asked),
exports a Netscape cookies.txt into the shared folder (cookies/.txt, ready for yt-dlp or
curl), imports one, or clears cookies; export/import/clear need approval. - Browser file upload (
browser.upload: attach files from the shared folder to a file input) and
downloads (browser.downloads: the controlled Brave now saves downloads into the shared folder's
downloads/ and the tool lists them). JavaScript dialogs (alert/confirm/prompt) are auto-accepted
and logged instead of blocking the page. - The controlled Brave profile keeps its logins between sessions: the tray app now closes Brave
gracefully (Browser.close, then waits for it to exit) so cookies and site data are flushed to the
persistent profile instead of being lost on a hard kill, and the "restore pages" bubble is hidden.
Fixed
- Background jobs on Windows: Windows PowerShell does not run as a detached (console-less) process,
so the job produced no output; jobs are now started as hidden children instead.
easylopster v1.5.0
[1.5.0] - 2026-10-26
Added
- Full browser control on Windows nodes:
browser.eval(run JavaScript in the page, awaited
result as JSON),browser.interact(press keys with modifiers, scroll, hover, choose options, back/forward/reload, wait for an element or text), browser.html (raw markup of the page or an element) and browser.pdf (print to PDF into the workspace inbox). Eval, key presses, selects and history navigation go through the chat approval (or "Always allow"); scroll, hover, wait, HTML and PDF are free. Enable the new capabilities on the node page after updating the tray app. Tray app development runs (electron .) use their own data folder and single-instance lock, so they can run next to the installed app; the default browser tab skips stray about:blank tabs.
easylopster v1.4.0
[1.4.0] - 2026-10-26
Added
-
Admin panel (/dashboard/admin, "Admin" in the sidebar for role=admin accounts): user list with
search (email, name, created, verified, role, bots/nodes/MCP counts, today's messages, effective
limits) and a per-user page. Accounts listed inADMIN_EMAILSbecome admins when they sign in.
Per-user quota overrides (User.limitBots/limitNodes/limitMcp/limitMessagesPerDay, null = global
BETA_MAX_* default) are edited there and honored by the dashboard, the chat setup tools and the
gateway's daily message quota (limitsFor(user)in @easylopster/shared/limits). "Sign in as this
user" opens the member's dashboard with a persistent "Viewing as — Back to admin" banner;
the admin's own session is parked in theel_admin_sessioncookie and restored on return (logged
on the server). Every registration (email or Google) emailsADMIN_NOTIFY_EMAILwith the new
user's details and a link to their admin page; mail failures never block sign-up. -
Context-window awareness: the key test stores each model's context size when the provider lists
it (OpenAI-compatible endpoints, OpenRouter, Google); other models come from a built-in table
(default 128k). History and compaction budgets now scale with the window (about 55% of it for
history, compaction at ~70% of that), a context-length error triggers an automatic compaction
and one retry, and a gauge shows usage: web chat footer ("context 42% · 108k / 256k", with a
nudge past 80%), Telegram /status, and the model picker lists sizes next to ids. -
MCP OAuth: remote servers that only sign in with OAuth (Notion, Evernote, Linear, Sentry and any
server answering 401 with resource metadata) can now be added from the dashboard. The flow follows
the MCP authorization spec (OAuth 2.1 + PKCE, dynamic client registration via the MCP SDK):
"Sign in with " registers a client, sends you to the vendor's consent page and the
callback (/api/mcp/oauth/callback) exchanges the code, lists the tools and marks the server
connected. Tokens, the client registration and discovery data live encrypted in McpServer.encOAuth;
the gateway sends the bearer token, refreshes it with the refresh token before expiry or on 401
and persists the new tokens. When a refresh fails the server shows "Sign in again" with a
re-authorize button. The generic add form detects a 401 on "Test connection" and offers the
sign-in; static-header servers work as before. Catalog: Notion and Evernote are usable, Linear
(mcp.linear.app) and Sentry (mcp.sentry.dev) added. -
Telegram streaming modes "Block" and "Progress" now do what their labels say: Block sends each
completed paragraph as its own message while the reply is still being written (code fences are
never split); Progress shows one silent status message (thinking / running / writing…)
and replaces it with the final answer as a fresh, notifying message. Partial and Off are unchanged. -
MCP catalog on the MCP servers page: Cloudflare (API, Docs, Browser Rendering), GitHub, Context7,
DeepWiki, Hugging Face, Exa, Tavily, Firecrawl, Stripe, Zapier and Composio (the last two are the
route to Gmail, Google Calendar, Drive, Sheets and thousands of other apps). "Use" opens the add
form prefilled with the URL, transport and header template plus where to get the credential. -
NameSilo bridge: mcp.namesilo.com speaks plain JSON-RPC rather than MCP, so a built-in
namesilo
tool (domains, DNS, name servers, email forwarding, balance; 80+ methods from the server's
manifest) appears for bots that have the Secret NAMESILO_API_KEY; the catalog card links to the
Secrets page with the name prefilled.
Changed
- Workspace file browser is a real tree: folders collapse and expand (memory/ and skills/ open by default), files sit inside their folders; the filter still searches flat.
Fixed
- A development gateway sharing the production database ran everyone's automations and dreaming
on the developer's machine (wrong workspace, no nodes) and messaged the owners;GATEWAY_ACCOUNT_EMAILS
now scopes polling, the automation scheduler and dreaming to the listed accounts. - Automation replies that are just a status marker (NO_NEW_POST, NOTHING_NEW, ... on one line) are
logged as silent instead of being sent to the owner; the wake message now spells out the NO_REPLY rule. - A reply ending in a NO_REPLY line is delivered without that line; a reply that is only NO_REPLY
(with or without punctuation) stays silent.