Got it. Thanks.
Now that Hook can obtain both name and address with a single script which returns a [name](url)
pattern like:
tell application id "com.reinvented.KeepIt"
set xs to selected items as list
if {} ≠ xs then
tell item 1 of xs
if missing value is not it then
"[" & name & "](keepit://link?item=" & id & ")"
end if
end tell
end if
end tell
I am interested to see that your supplied solutions still use two separate scripts – is there a particular reason for doing it that way ?