productivity
Fellow Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Fellow KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.fellow.*.
Use lua_read_doc("integrations.fellow") 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
Fellow workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.fellow.get_current_user({}))' --json kosmo integrations:lua --eval 'print(docs.read("fellow"))' --json
kosmo integrations:lua --eval 'print(docs.read("fellow.get_current_user"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local fellow = app.integrations.fellow
local result = fellow.get_current_user({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.fellow, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.fellow.default.* or app.integrations.fellow.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Fellow, 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.
Fellow Lua API Reference
Namespace: app.integrations.fellow
Fellow tools use the official Developer API at https://{subdomain}.fellow.app/api/v1. The integration sends credentials in the X-API-KEY header automatically.
User
local me = app.integrations.fellow.get_current_user({})
Returns the authenticated user and workspace context.
Notes
local notes = app.integrations.fellow.list_notes({
pagination = { page_size = 25 },
include = { transcript = true },
filters = { updated_at_start = "2026-05-01" }
})
local note = app.integrations.fellow.get_note({
note_id = "note_123"
})
delete_note exists for privileged API keys only:
app.integrations.fellow.delete_note({ note_id = "note_123" })
Action Items
local items = app.integrations.fellow.list_action_items({
order_by = "due_date",
filters = { scope = "assigned_to_me" }
})
local item = app.integrations.fellow.get_action_item({
action_item_id = "action_123"
})
app.integrations.fellow.mark_action_item_complete({
action_item_id = "action_123",
completed = true
})
app.integrations.fellow.archive_action_item({
action_item_id = "action_123"
})
Supported scope filter values in Fellow docs include assigned_to_me and assigned_to_others.
Recordings
local recordings = app.integrations.fellow.list_recordings({
pagination = { page_size = 10 },
media_url = { expires_in = 3600 }
})
local recording = app.integrations.fellow.get_recording({
recording_id = "rec_123"
})
delete_recording requires privileged API access.
Webhooks
local hooks = app.integrations.fellow.list_webhooks({
page_size = 20
})
local hook = app.integrations.fellow.create_webhook({
url = "https://example.test/webhooks/fellow",
enabled_events = {
"ai_note.shared_to_channel",
"ai_note.generated",
"action_item.assigned",
"action_item.completed"
},
description = "Agent workflow webhook",
status = "active"
})
app.integrations.fellow.update_webhook({
webhook_id = "webhook_123",
status = "inactive"
})
app.integrations.fellow.delete_webhook({
webhook_id = "webhook_123"
})
Generic API
Use generic tools only for documented endpoints that do not yet have a first-class tool. Paths must be relative.
local data = app.integrations.fellow.api_get({
path = "/me"
})
app.integrations.fellow.api_post({
path = "/action_items",
payload = {
filters = { scope = "assigned_to_me" }
}
})
Absolute URLs are rejected.
Multi-Account Usage
app.integrations.fellow.get_current_user({})
app.integrations.fellow.default.get_current_user({})
app.integrations.fellow.leadership.list_notes({
pagination = { page_size = 10 }
})Raw agent markdown
# Fellow Lua API Reference
Namespace: `app.integrations.fellow`
Fellow tools use the official Developer API at `https://{subdomain}.fellow.app/api/v1`. The integration sends credentials in the `X-API-KEY` header automatically.
## User
```lua
local me = app.integrations.fellow.get_current_user({})
```
Returns the authenticated user and workspace context.
## Notes
```lua
local notes = app.integrations.fellow.list_notes({
pagination = { page_size = 25 },
include = { transcript = true },
filters = { updated_at_start = "2026-05-01" }
})
local note = app.integrations.fellow.get_note({
note_id = "note_123"
})
```
`delete_note` exists for privileged API keys only:
```lua
app.integrations.fellow.delete_note({ note_id = "note_123" })
```
## Action Items
```lua
local items = app.integrations.fellow.list_action_items({
order_by = "due_date",
filters = { scope = "assigned_to_me" }
})
local item = app.integrations.fellow.get_action_item({
action_item_id = "action_123"
})
app.integrations.fellow.mark_action_item_complete({
action_item_id = "action_123",
completed = true
})
app.integrations.fellow.archive_action_item({
action_item_id = "action_123"
})
```
Supported `scope` filter values in Fellow docs include `assigned_to_me` and `assigned_to_others`.
## Recordings
```lua
local recordings = app.integrations.fellow.list_recordings({
pagination = { page_size = 10 },
media_url = { expires_in = 3600 }
})
local recording = app.integrations.fellow.get_recording({
recording_id = "rec_123"
})
```
`delete_recording` requires privileged API access.
## Webhooks
```lua
local hooks = app.integrations.fellow.list_webhooks({
page_size = 20
})
local hook = app.integrations.fellow.create_webhook({
url = "https://example.test/webhooks/fellow",
enabled_events = {
"ai_note.shared_to_channel",
"ai_note.generated",
"action_item.assigned",
"action_item.completed"
},
description = "Agent workflow webhook",
status = "active"
})
app.integrations.fellow.update_webhook({
webhook_id = "webhook_123",
status = "inactive"
})
app.integrations.fellow.delete_webhook({
webhook_id = "webhook_123"
})
```
## Generic API
Use generic tools only for documented endpoints that do not yet have a first-class tool. Paths must be relative.
```lua
local data = app.integrations.fellow.api_get({
path = "/me"
})
app.integrations.fellow.api_post({
path = "/action_items",
payload = {
filters = { scope = "assigned_to_me" }
}
})
```
Absolute URLs are rejected.
## Multi-Account Usage
```lua
app.integrations.fellow.get_current_user({})
app.integrations.fellow.default.get_current_user({})
app.integrations.fellow.leadership.list_notes({
pagination = { page_size = 10 }
})
``` local result = app.integrations.fellow.get_current_user({})
print(result) Functions
get_current_user Read
Get the profile of the currently authenticated Fellow user. Returns name, email, and account details.
- Lua path
app.integrations.fellow.get_current_user- Full name
fellow.fellow_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_notes Read
List Fellow notes with optional filters, includes, and pagination.
- Lua path
app.integrations.fellow.list_notes- Full name
fellow.fellow_list_notes
| Parameter | Type | Required | Description |
|---|---|---|---|
payload | object | no | Raw Fellow list body with pagination, include, and filters. |
pagination | object | no | Pagination object. |
include | object | no | Optional expensive fields to include. |
filters | object | no | Note filters. |
get_note Read
Retrieve a Fellow note by ID.
- Lua path
app.integrations.fellow.get_note- Full name
fellow.fellow_get_note
| Parameter | Type | Required | Description |
|---|---|---|---|
note_id | string | yes | Fellow note ID. |
delete_note Write
Delete a Fellow note by ID. This endpoint requires a privileged Fellow API key.
- Lua path
app.integrations.fellow.delete_note- Full name
fellow.fellow_delete_note
| Parameter | Type | Required | Description |
|---|---|---|---|
note_id | string | yes | Fellow note ID. |
list_action_items Read
List action items from Fellow. Supports cursor-based pagination and optional status filtering. Returns action item titles, assignees, due dates, and completion status.
- Lua path
app.integrations.fellow.list_action_items- Full name
fellow.fellow_list_action_items
| Parameter | Type | Required | Description |
|---|---|---|---|
payload | object | no | Raw Fellow list body with pagination, include, order_by, and filters. |
pagination | object | no | Pagination object. |
include | string | no | Optional include field. |
order_by | string | no | Order by created_at_desc, created_at_asc, or due_date. |
filters | object | no | Action item filters, including scope. |
get_action_item Read
Retrieve a Fellow action item by ID.
- Lua path
app.integrations.fellow.get_action_item- Full name
fellow.fellow_get_action_item
| Parameter | Type | Required | Description |
|---|---|---|---|
action_item_id | string | yes | Fellow action item ID. |
mark_action_item_complete Write
Mark a Fellow action item complete or incomplete.
- Lua path
app.integrations.fellow.mark_action_item_complete- Full name
fellow.fellow_mark_action_item_complete
| Parameter | Type | Required | Description |
|---|---|---|---|
action_item_id | string | yes | Fellow action item ID. |
completed | boolean | yes | Whether the action item should be complete. |
archive_action_item Write
Archive a Fellow action item by marking it as won't do.
- Lua path
app.integrations.fellow.archive_action_item- Full name
fellow.fellow_archive_action_item
| Parameter | Type | Required | Description |
|---|---|---|---|
action_item_id | string | yes | Fellow action item ID. |
list_recordings Read
List Fellow recordings with optional filters, includes, pagination, and media URL settings.
- Lua path
app.integrations.fellow.list_recordings- Full name
fellow.fellow_list_recordings
| Parameter | Type | Required | Description |
|---|---|---|---|
payload | object | no | Raw Fellow list body with pagination, include, filters, and media_url. |
pagination | object | no | Pagination object. |
include | object | no | Optional expensive fields to include. |
filters | object | no | Recording filters. |
media_url | object | no | Media URL expiration configuration. |
get_recording Read
Retrieve a Fellow recording by ID.
- Lua path
app.integrations.fellow.get_recording- Full name
fellow.fellow_get_recording
| Parameter | Type | Required | Description |
|---|---|---|---|
recording_id | string | yes | Fellow recording ID. |
delete_recording Write
Delete a Fellow recording by ID. This endpoint requires a privileged Fellow API key.
- Lua path
app.integrations.fellow.delete_recording- Full name
fellow.fellow_delete_recording
| Parameter | Type | Required | Description |
|---|---|---|---|
recording_id | string | yes | Fellow recording ID. |
list_webhooks Read
List Fellow webhooks with optional page size, cursor, and JSON-encoded filters.
- Lua path
app.integrations.fellow.list_webhooks- Full name
fellow.fellow_list_webhooks
| Parameter | Type | Required | Description |
|---|---|---|---|
page_size | integer | no | Number of results per page. |
cursor | string | no | Pagination cursor. |
filters | string,object | no | Webhook filters as JSON string or object. |
create_webhook Write
Create a Fellow webhook endpoint for supported event types.
- Lua path
app.integrations.fellow.create_webhook- Full name
fellow.fellow_create_webhook
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | yes | Webhook destination URL. |
enabled_events | array | yes | Event types to subscribe to. |
description | string | no | Optional webhook description. |
status | string | no | Webhook status. |
get_webhook Read
Retrieve a Fellow webhook by ID.
- Lua path
app.integrations.fellow.get_webhook- Full name
fellow.fellow_get_webhook
| Parameter | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Fellow webhook ID. |
update_webhook Write
Update a Fellow webhook endpoint with partial fields.
- Lua path
app.integrations.fellow.update_webhook- Full name
fellow.fellow_update_webhook
| Parameter | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Fellow webhook ID. |
payload | object | no | Raw webhook update body. |
url | string | no | Webhook destination URL. |
enabled_events | array | no | Event types to subscribe to. |
description | string | no | Webhook description. |
status | string | no | Webhook status. |
delete_webhook Write
Delete a Fellow webhook endpoint by ID.
- Lua path
app.integrations.fellow.delete_webhook- Full name
fellow.fellow_delete_webhook
| Parameter | Type | Required | Description |
|---|---|---|---|
webhook_id | string | yes | Fellow webhook ID. |
api_get Read
Call a relative Fellow API GET path for documented endpoints without a first-class tool.
- Lua path
app.integrations.fellow.api_get- Full name
fellow.fellow_api_get
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | Relative path such as /me. Absolute URLs are rejected. |
params | object | no | Query parameters. |
api_post Write
Call a relative Fellow API POST path for documented endpoints without a first-class tool.
- Lua path
app.integrations.fellow.api_post- Full name
fellow.fellow_api_post
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | Relative path such as /notes. Absolute URLs are rejected. |
payload | object | no | JSON request body. |
api_patch Write
Call a relative Fellow API PATCH path for documented endpoints without a first-class tool.
- Lua path
app.integrations.fellow.api_patch- Full name
fellow.fellow_api_patch
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | Relative path such as /webhook/{id}. Absolute URLs are rejected. |
payload | object | no | JSON request body. |
api_delete Write
Call a relative Fellow API DELETE path for documented endpoints without a first-class tool.
- Lua path
app.integrations.fellow.api_delete- Full name
fellow.fellow_api_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | Relative path such as /webhook/{id}. Absolute URLs are rejected. |
payload | object | no | Optional JSON request body. |