KosmoKrator

productivity

Droplr Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Droplr KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.droplr.*. Use lua_read_doc("integrations.droplr") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Droplr workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.droplr.list({}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("droplr"))' --json
kosmo integrations:lua --eval 'print(docs.read("droplr.list"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local droplr = app.integrations.droplr
local result = droplr.list({})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.droplr, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.droplr.default.* or app.integrations.droplr.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Droplr, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Droplr Lua API Reference

Namespace: app.integrations.droplr

Droplr tools use the configured bearer-token API base, defaulting to https://api.droplr.com. Public Droplr documentation also describes legacy signed endpoints; use the generic helpers for those paths only when the configured environment supports them.

Drops

local drops = app.integrations.droplr.list_drops({
  type = "LINK",
  sortBy = "CREATION",
  order = "DESC",
  limit = 25
})

local drop = app.integrations.droplr.get_drop({
  id = "abc123"
})

list_drops accepts page, limit, offset, amount, type, q, sortBy, order, since, and until.

Create Content

local link = app.integrations.droplr.create_drop({
  link = "https://example.test/docs",
  title = "Documentation"
})

local note = app.integrations.droplr.create_note({
  content = "Release note text",
  title = "Release note",
  variant = "plain"
})

local raw = app.integrations.droplr.create_drop_raw({
  body = {
    type = "LINK",
    link = "https://example.test",
    privacy = "OBSCURE"
  }
})

extra on create_drop and create_note is merged into the request body for API-supported fields such as privacy or password.

Update And Delete

local updated = app.integrations.droplr.update_drop({
  id = "abc123",
  body = {
    title = "Updated title"
  }
})

app.integrations.droplr.delete_drop({
  id = "abc123"
})

Boards And Account

local boards = app.integrations.droplr.list_boards({
  limit = 10
})

local user = app.integrations.droplr.get_current_user()

local updated_user = app.integrations.droplr.update_current_user({
  body = {
    theme = "dark"
  }
})

Generic API Helpers

local result = app.integrations.droplr.api_get({
  path = "/v2/drops",
  params = { limit = 10 }
})

local changed = app.integrations.droplr.api_put({
  path = "/v2/user",
  body = { theme = "dark" }
})

Available helpers:

FunctionPurpose
api_getGET with optional query params
api_postPOST with JSON body
api_putPUT with JSON body
api_deleteDELETE with optional JSON body

Absolute URLs are rejected; pass a relative path such as /v2/drops/abc123.

Multi-Account Usage

app.integrations.droplr.list_drops({ limit = 10 })
app.integrations.droplr.default.list_drops({ limit = 10 })
app.integrations.droplr.work.list_drops({ limit = 10 })
Raw agent markdown
# Droplr Lua API Reference

Namespace: `app.integrations.droplr`

Droplr tools use the configured bearer-token API base, defaulting to `https://api.droplr.com`. Public Droplr documentation also describes legacy signed endpoints; use the generic helpers for those paths only when the configured environment supports them.

## Drops

```lua
local drops = app.integrations.droplr.list_drops({
  type = "LINK",
  sortBy = "CREATION",
  order = "DESC",
  limit = 25
})

local drop = app.integrations.droplr.get_drop({
  id = "abc123"
})
```

`list_drops` accepts `page`, `limit`, `offset`, `amount`, `type`, `q`, `sortBy`, `order`, `since`, and `until`.

## Create Content

```lua
local link = app.integrations.droplr.create_drop({
  link = "https://example.test/docs",
  title = "Documentation"
})

local note = app.integrations.droplr.create_note({
  content = "Release note text",
  title = "Release note",
  variant = "plain"
})

local raw = app.integrations.droplr.create_drop_raw({
  body = {
    type = "LINK",
    link = "https://example.test",
    privacy = "OBSCURE"
  }
})
```

`extra` on `create_drop` and `create_note` is merged into the request body for API-supported fields such as privacy or password.

## Update And Delete

```lua
local updated = app.integrations.droplr.update_drop({
  id = "abc123",
  body = {
    title = "Updated title"
  }
})

app.integrations.droplr.delete_drop({
  id = "abc123"
})
```

## Boards And Account

```lua
local boards = app.integrations.droplr.list_boards({
  limit = 10
})

local user = app.integrations.droplr.get_current_user()

local updated_user = app.integrations.droplr.update_current_user({
  body = {
    theme = "dark"
  }
})
```

## Generic API Helpers

```lua
local result = app.integrations.droplr.api_get({
  path = "/v2/drops",
  params = { limit = 10 }
})

local changed = app.integrations.droplr.api_put({
  path = "/v2/user",
  body = { theme = "dark" }
})
```

Available helpers:

| Function | Purpose |
|----------|---------|
| `api_get` | GET with optional query params |
| `api_post` | POST with JSON body |
| `api_put` | PUT with JSON body |
| `api_delete` | DELETE with optional JSON body |

Absolute URLs are rejected; pass a relative path such as `/v2/drops/abc123`.

## Multi-Account Usage

```lua
app.integrations.droplr.list_drops({ limit = 10 })
app.integrations.droplr.default.list_drops({ limit = 10 })
app.integrations.droplr.work.list_drops({ limit = 10 })
```
Metadata-derived Lua example
local result = app.integrations.droplr.list({})
print(result)

Functions

list Read

List drops with filtering and sorting.

Lua path
app.integrations.droplr.list
Full name
droplr.droplr_list_drops
ParameterTypeRequiredDescription
No parameters.
get Read

Get one drop.

Lua path
app.integrations.droplr.get
Full name
droplr.droplr_get_drop
ParameterTypeRequiredDescription
No parameters.
create_note Write

Create a note drop.

Lua path
app.integrations.droplr.create_note
Full name
droplr.droplr_create_note
ParameterTypeRequiredDescription
No parameters.
create_raw Write

Create a drop from a raw payload.

Lua path
app.integrations.droplr.create_raw
Full name
droplr.droplr_create_drop_raw
ParameterTypeRequiredDescription
No parameters.
update Write

Update one drop.

Lua path
app.integrations.droplr.update
Full name
droplr.droplr_update_drop
ParameterTypeRequiredDescription
No parameters.
delete Write

Delete a drop.

Lua path
app.integrations.droplr.delete
Full name
droplr.droplr_delete_drop
ParameterTypeRequiredDescription
No parameters.
list_boards Read

List boards.

Lua path
app.integrations.droplr.list_boards
Full name
droplr.droplr_list_boards
ParameterTypeRequiredDescription
No parameters.
get_current_user Read

Get current user profile.

Lua path
app.integrations.droplr.get_current_user
Full name
droplr.droplr_get_current_user
ParameterTypeRequiredDescription
No parameters.
update_current_user Write

Update account fields.

Lua path
app.integrations.droplr.update_current_user
Full name
droplr.droplr_update_current_user
ParameterTypeRequiredDescription
No parameters.
api_get Read

Call a Droplr GET endpoint.

Lua path
app.integrations.droplr.api_get
Full name
droplr.droplr_api_get
ParameterTypeRequiredDescription
No parameters.
api_post Write

Call a Droplr POST endpoint.

Lua path
app.integrations.droplr.api_post
Full name
droplr.droplr_api_post
ParameterTypeRequiredDescription
No parameters.
api_put Write

Call a Droplr PUT endpoint.

Lua path
app.integrations.droplr.api_put
Full name
droplr.droplr_api_put
ParameterTypeRequiredDescription
No parameters.
api_delete Write

Call a Droplr DELETE endpoint.

Lua path
app.integrations.droplr.api_delete
Full name
droplr.droplr_api_delete
ParameterTypeRequiredDescription
No parameters.