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.
kosmo integrations:lua --eval 'dump(app.integrations.droplr.list({}))' --json 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.
local droplr = app.integrations.droplr
local result = droplr.list({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json 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.
# 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:
| 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
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 })
``` 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get Read
Get one drop.
- Lua path
app.integrations.droplr.get- Full name
droplr.droplr_get_drop
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_link Write
Create a short-link drop.
- Lua path
app.integrations.droplr.create_link- Full name
droplr.droplr_create_drop
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_note Write
Create a note drop.
- Lua path
app.integrations.droplr.create_note- Full name
droplr.droplr_create_note
| Parameter | Type | Required | Description |
|---|---|---|---|
| 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update Write
Update one drop.
- Lua path
app.integrations.droplr.update- Full name
droplr.droplr_update_drop
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete Write
Delete a drop.
- Lua path
app.integrations.droplr.delete- Full name
droplr.droplr_delete_drop
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_boards Read
List boards.
- Lua path
app.integrations.droplr.list_boards- Full name
droplr.droplr_list_boards
| Parameter | Type | Required | Description |
|---|---|---|---|
| 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_current_user Write
Update account fields.
- Lua path
app.integrations.droplr.update_current_user- Full name
droplr.droplr_update_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_get Read
Call a Droplr GET endpoint.
- Lua path
app.integrations.droplr.api_get- Full name
droplr.droplr_api_get
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_post Write
Call a Droplr POST endpoint.
- Lua path
app.integrations.droplr.api_post- Full name
droplr.droplr_api_post
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_put Write
Call a Droplr PUT endpoint.
- Lua path
app.integrations.droplr.api_put- Full name
droplr.droplr_api_put
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_delete Write
Call a Droplr DELETE endpoint.
- Lua path
app.integrations.droplr.api_delete- Full name
droplr.droplr_api_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||