ShipLock · tinkerers ·

Ollama, a token and a curl walk into a bar

You do not need the dashboard, or a cloud AI. A local model writes the file, one request puts it online, and the links come back in the reply.

1. A token

In the dashboard, open Agents & tokens and make a token and tick deploy and admin (admin is what makes share links). It is shown once. Keep it in your shell:

export SL=https://shiplock.app
export T=sl_your_token_here

2. A local model writes the app

Our instructions are a system prompt that teaches the one pattern ShipLock apps use. With Ollama:

curl -s https://shiplock.app/PROMPT.md -o PROMPT.md
ollama run qwen2.5-coder:14b "$(cat PROMPT.md)

A sign-up sheet for the litter pick: name, street, and a note. Only the owner can read the list." > app.html

Open app.html in a browser first. If the model wrapped it in a code fence, strip the first and last lines. Bigger models do noticeably better here; the tiny ones tend to lose the thread halfway through a page.

3. Publish

curl -s -F file=@app.html -F name="Litter pick" -H "Authorization: Bearer $T" $SL/api/deploy

The reply has the app's address and its id. It is private until you make a link:

curl -s -X POST -H "Authorization: Bearer $T" -H "Content-Type: application/json" \
  -d '{"role":"submit","label":"the street"}' $SL/api/apps/APP_ID/grants

That returns the add-only link to put in the group chat. Change the file, run the deploy line again with -F appId=APP_ID, and the same links show the new version.

Reading the data back

Every app has a small database behind /_sl/db/. Make yourself an edit link and use its token from a script:

curl -s -H "X-SL-Token: THE_TOKEN_FROM_YOUR_EDIT_LINK" https://litter-pick.shiplock.app/_sl/db/entries

Rows come back as JSON. A cron job that pulls them into a spreadsheet is ten lines.

The skill file at shiplock.app/skill.md is the same API, written for an AI to follow. If your local model runs tools, give it that.

Try it free.

Plus free for 30 days. No credit card. One link in your inbox, nothing else.