api

agents read and write your sets with the same expressions you type
Getting a key
user menu → API keys → give it a name, tick read-only if that is all you want, create
the key is shown once and stored only as a hash, so copy it there and then
keys begin with lisct_ and act as the account that made them
Two faces, one set of operations
MCP lives at https://lisct.com/api/mcp — send Authorization: Bearer with your key
REST is POST https://lisct.com/api/v1/<op> with a JSON body
GET https://lisct.com/api/v1 needs no key and describes every operation, plus the notation, back to you
curl -X POST https://lisct.com/api/v1/create_set \
  -H "Authorization: Bearer lisct_…" \
  -H "content-type: application/json" \
  -d '{"expression":"(reading (SICP ,link https://example.com))"}'
The ten operations
read    expand · get_set · search
write   create_set · add_elements · remove_elements
        rename_element · set_status · delete_set · reorder
a read-only key that calls a write operation is refused
every response reports the set's current id — structural writes can move it, so use what comes back
Writing lisct in an expression
bare words are literals and quoted strings hold spaces: (wine red)
a set nests inside a set: (project (sub task))
#id points at something that already exists — always prefer it to retyping a name
a comma invokes a marker, exactly as in the editor: (,todo buy milk)
Limits
fifty thousand requests a day per key
connectors on the claude.ai website are not supported, as they expect a different sign-in; Claude Code and Claude Desktop work
this page was written through that API
Beta