How To Call It
System is a global table: call its functions with a dot (System.<method>(...)), not a colon. Requires Macro Handler 1.0.52 or later.
Lists saved clipboard metadata without text: id, position and chars, newest first.
Documented for app version 1.0.52 (not on Google Play yet)Updated:
System is a global table: call its functions with a dot (System.<method>(...)), not a colon. Requires Macro Handler 1.0.52 or later.
In system flow, design steps as observe first and act second when the API can affect device state.
Takes no arguments. Returns a 1-based Lua array of rows with id (stable UUID), position (current ordering; newest is 1) and chars (UTF-16 length). It returns neither text nor previews. An empty table can mean empty history, denied consent or unreadable storage; it is not proof of permission/readiness.
All five APIs use the existing clipboard-read consent and macro STOP checks. Saved history contains only explicitly captured entries: at most 32, each up to 4096 UTF-16 code units, encrypted on this device outside backup. Android or keyboard history is not read. Deletion, eviction or key loss never selects other text as a fallback.
Keep id, not position, when selecting an entry. A new capture changes positions; never fall back from a missing ID to the first row or current clipboard.
The snippet below is a starter pattern that can be applied directly in runtime flow.
local entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
endFrom foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.
local entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
endlocal stepOk = true
local entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
end
if stepOk then
wait(200)
endlocal ok, err = pcall(function()
local entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
end
end)
if not ok then
print("API step failed: System.clipboardHistory: " .. tostring(err))
requestStop()
end-- In system flow, design steps as observe first and act second when the API can affect device state.
local function run_clipboardhistory_step()
local entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
end
end
local ok, err = pcall(run_clipboardhistory_step)
if not ok then
toast("Step failed")
print(err)
endlocal entries = System.clipboardHistory()
for _, entry in ipairs(entries) do
print("saved position: " .. entry.position .. ", chars: " .. entry.chars)
end