October 2026

Everything that changed in NoClick in October 2026.

NewAgentsSDKAPINext SDK release

Memories that agents share

A memory is now an object of its own, with a name, that any number of agents can read: what every agent of your company should know, or what one agent learned that another needs. Attach it with memories=; it's read-only unless attached with writable(). Each agent still keeps a memory of its own.

company = noclick.Memory.from_name("company", create_if_missing=True)
company.save("tone", "Warm, brief, no jargon.", description="How we write")

support = noclick.Agent.from_name("support", create_if_missing=True,
                                  instructions="Answer billing questions.", memories=[company])
Read more in Memory and files

A monthly spending cap for your whole account

Set what your account may spend in each billing period in Settings → Plan and billing. Once the period's spend reaches it, every call that costs money fails with noclick.SpendCapExceeded, its scope "account", until the period resets. What you already have keeps renewing (numbers, domains, storage), and apps keep serving pages until the period reaches twice the cap. Only the account's owner sets or raises it.

Read more in Spend and limits
NewAPISDKNext SDK release

Reversible by default: the trash and undo

Deleting an app, database, bucket, dict, queue, repo, volume, inbox or agent now moves it to the trash, where it stays restorable for 30 days. A write that can be taken back records how, so its operation can be undone. Only purging is permanent.

item = noclick.Database.from_name("orders").delete()
print(item.kind, item.name, item.purge_after)   # database orders 2026-11-14 ...

item.restore()   # back under its name, every table and row with it
Read more in Undo and the trash
NewAPISDKNext SDK release

Build automations from a description

Workflow.create with instructions has NoClick's builder make the automation, as it does in the app. Change it the same way, by describing the change, and run, pause and publish it from your code.

brief = noclick.Workflow.create(
    "Morning brief",
    instructions="Every weekday at 8, email me today's calendar and the unread emails that need a reply.",
)
result = brief.latest_build.wait(timeout=900)
print(result.summary)
Read more in Workflows