productivity
MeisterTask Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the MeisterTask KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.meistertask.*.
Use lua_read_doc("integrations.meistertask") 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
MeisterTask workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.meistertask.list_projects({}))' --json kosmo integrations:lua --eval 'print(docs.read("meistertask"))' --json
kosmo integrations:lua --eval 'print(docs.read("meistertask.list_projects"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local meistertask = app.integrations.meistertask
local result = meistertask.list_projects({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.meistertask, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.meistertask.default.* or app.integrations.meistertask.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need MeisterTask, 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.
MeisterTask — Lua API Reference
list_projects
List all MeisterTask projects the authenticated user has access to.
Parameters
No parameters required.
Example
local result = app.integrations.meistertask.list_projects({})
for _, project in ipairs(result) do
print(project.id .. ": " .. project.name)
end
get_project
Get detailed information about a specific MeisterTask project.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The project ID |
Example
local result = app.integrations.meistertask.get_project({
id = 12345
})
print("Project: " .. result.name)
print("Status: " .. result.status)
create_task
Create a new task in a MeisterTask project.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The project ID to create the task in |
name | string | yes | The task name / title |
status | string | no | Task status (e.g., “open”, “completed”) |
description | string | no | Task description (supports Markdown) |
assignee_id | integer | no | User ID to assign the task to |
due_date | string | no | Due date in ISO 8601 format (e.g., “2026-04-30”) |
priority | integer | no | Priority level |
section_id | integer | no | Section (column) ID within the project |
labels | array | no | Array of label names or IDs |
Example
local result = app.integrations.meistertask.create_task({
project_id = 12345,
name = "Review quarterly report",
description = "Check all numbers and update the summary section.",
due_date = "2026-04-30",
priority = 3
})
print("Created task #" .. result.id .. ": " .. result.name)
list_tasks
List tasks across projects with optional filters.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
project_id | integer | no | Filter by project ID |
status | string | no | Filter by status (e.g., “open”, “completed”) |
assignee_id | integer | no | Filter by assignee user ID |
limit | integer | no | Maximum number of tasks to return |
page | integer | no | Page number for pagination |
Example
-- List open tasks in a specific project
local result = app.integrations.meistertask.list_tasks({
project_id = 12345,
status = "open"
})
for _, task in ipairs(result) do
print(task.id .. ": " .. task.name .. " (due: " .. (task.due_date or "none") .. ")")
end
get_task
Get detailed information about a specific task.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The task ID |
Example
local result = app.integrations.meistertask.get_task({
id = 67890
})
print("Task: " .. result.name)
print("Status: " .. result.status)
print("Description: " .. (result.description or "No description"))
update_task
Update an existing task. Provide only the fields you want to change.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The task ID to update |
name | string | no | New task name |
status | string | no | New status (e.g., “open”, “completed”) |
description | string | no | Updated description |
assignee_id | integer | no | Reassign to a different user |
due_date | string | no | Updated due date (ISO 8601) |
priority | integer | no | Updated priority |
section_id | integer | no | Move to a different section |
labels | array | no | Updated labels |
Example
-- Complete a task
local result = app.integrations.meistertask.update_task({
id = 67890,
status = "completed"
})
print("Task " .. result.id .. " is now " .. result.status)
-- Update due date and assignee
local result2 = app.integrations.meistertask.update_task({
id = 67891,
due_date = "2026-05-15",
assignee_id = 42
})
get_current_user
Get the authenticated user’s profile.
Parameters
No parameters required.
Example
local result = app.integrations.meistertask.get_current_user({})
print("Logged in as: " .. result.first_name .. " " .. result.last_name)
print("Email: " .. result.email)
Multi-Account Usage
If you have multiple MeisterTask accounts configured, use account-specific namespaces:
-- Default account (always works)
app.integrations.meistertask.list_projects({})
-- Explicit default (portable across setups)
app.integrations.meistertask.default.list_projects({})
-- Named accounts
app.integrations.meistertask.work.list_projects({})
app.integrations.meistertask.personal.list_projects({})
All functions are identical across accounts — only the credentials differ.
Raw agent markdown
# MeisterTask — Lua API Reference
## list_projects
List all MeisterTask projects the authenticated user has access to.
### Parameters
No parameters required.
### Example
```lua
local result = app.integrations.meistertask.list_projects({})
for _, project in ipairs(result) do
print(project.id .. ": " .. project.name)
end
```
---
## get_project
Get detailed information about a specific MeisterTask project.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The project ID |
### Example
```lua
local result = app.integrations.meistertask.get_project({
id = 12345
})
print("Project: " .. result.name)
print("Status: " .. result.status)
```
---
## create_task
Create a new task in a MeisterTask project.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project_id` | integer | yes | The project ID to create the task in |
| `name` | string | yes | The task name / title |
| `status` | string | no | Task status (e.g., "open", "completed") |
| `description` | string | no | Task description (supports Markdown) |
| `assignee_id` | integer | no | User ID to assign the task to |
| `due_date` | string | no | Due date in ISO 8601 format (e.g., "2026-04-30") |
| `priority` | integer | no | Priority level |
| `section_id` | integer | no | Section (column) ID within the project |
| `labels` | array | no | Array of label names or IDs |
### Example
```lua
local result = app.integrations.meistertask.create_task({
project_id = 12345,
name = "Review quarterly report",
description = "Check all numbers and update the summary section.",
due_date = "2026-04-30",
priority = 3
})
print("Created task #" .. result.id .. ": " .. result.name)
```
---
## list_tasks
List tasks across projects with optional filters.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project_id` | integer | no | Filter by project ID |
| `status` | string | no | Filter by status (e.g., "open", "completed") |
| `assignee_id` | integer | no | Filter by assignee user ID |
| `limit` | integer | no | Maximum number of tasks to return |
| `page` | integer | no | Page number for pagination |
### Example
```lua
-- List open tasks in a specific project
local result = app.integrations.meistertask.list_tasks({
project_id = 12345,
status = "open"
})
for _, task in ipairs(result) do
print(task.id .. ": " .. task.name .. " (due: " .. (task.due_date or "none") .. ")")
end
```
---
## get_task
Get detailed information about a specific task.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The task ID |
### Example
```lua
local result = app.integrations.meistertask.get_task({
id = 67890
})
print("Task: " .. result.name)
print("Status: " .. result.status)
print("Description: " .. (result.description or "No description"))
```
---
## update_task
Update an existing task. Provide only the fields you want to change.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The task ID to update |
| `name` | string | no | New task name |
| `status` | string | no | New status (e.g., "open", "completed") |
| `description` | string | no | Updated description |
| `assignee_id` | integer | no | Reassign to a different user |
| `due_date` | string | no | Updated due date (ISO 8601) |
| `priority` | integer | no | Updated priority |
| `section_id` | integer | no | Move to a different section |
| `labels` | array | no | Updated labels |
### Example
```lua
-- Complete a task
local result = app.integrations.meistertask.update_task({
id = 67890,
status = "completed"
})
print("Task " .. result.id .. " is now " .. result.status)
-- Update due date and assignee
local result2 = app.integrations.meistertask.update_task({
id = 67891,
due_date = "2026-05-15",
assignee_id = 42
})
```
---
## get_current_user
Get the authenticated user's profile.
### Parameters
No parameters required.
### Example
```lua
local result = app.integrations.meistertask.get_current_user({})
print("Logged in as: " .. result.first_name .. " " .. result.last_name)
print("Email: " .. result.email)
```
---
## Multi-Account Usage
If you have multiple MeisterTask accounts configured, use account-specific namespaces:
```lua
-- Default account (always works)
app.integrations.meistertask.list_projects({})
-- Explicit default (portable across setups)
app.integrations.meistertask.default.list_projects({})
-- Named accounts
app.integrations.meistertask.work.list_projects({})
app.integrations.meistertask.personal.list_projects({})
```
All functions are identical across accounts — only the credentials differ. local result = app.integrations.meistertask.list_projects({})
print(result) Functions
list_projects Read
List all MeisterTask projects the authenticated user has access to. Returns project IDs, names, and basic metadata.
- Lua path
app.integrations.meistertask.list_projects- Full name
meistertask.meistertask_list_projects
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_project Read
Get detailed information about a specific MeisterTask project, including sections, members, and status.
- Lua path
app.integrations.meistertask.get_project- Full name
meistertask.meistertask_get_project
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The project ID. |
create Write
Create a new task in a MeisterTask project. You must specify the project and at least a task name. Optionally set status, assignee, due date, description, and more.
- Lua path
app.integrations.meistertask.create- Full name
meistertask.meistertask_create_task
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The project ID to create the task in. |
name | string | yes | The task name / title. |
status | string | no | Task status. Common values: "open", "completed". Defaults to "open". |
description | string | no | A detailed description of the task (supports Markdown). |
assignee_id | integer | no | The user ID of the person to assign the task to. |
due_date | string | no | Due date in ISO 8601 format (e.g., "2026-04-30"). |
priority | integer | no | Task priority level. |
section_id | integer | no | The section (column) ID within the project to place the task. |
labels | array | no | Array of label names or IDs to attach to the task. |
list Read
List tasks across MeisterTask projects with optional filters. Supports filtering by project, status, assignee, and more.
- Lua path
app.integrations.meistertask.list- Full name
meistertask.meistertask_list_tasks
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | no | Filter tasks by project ID. |
status | string | no | Filter by status. Common values: "open", "completed". |
assignee_id | integer | no | Filter by assignee user ID. |
limit | integer | no | Maximum number of tasks to return. |
page | integer | no | Page number for pagination. |
get Read
Get detailed information about a specific MeisterTask task, including its description, status, assignee, due date, and attachments.
- Lua path
app.integrations.meistertask.get- Full name
meistertask.meistertask_get_task
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The task ID. |
update Write
Update an existing MeisterTask task. You can change the name, status, description, assignee, due date, priority, labels, and more.
- Lua path
app.integrations.meistertask.update- Full name
meistertask.meistertask_update_task
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The task ID to update. |
name | string | no | New task name / title. |
status | string | no | New status. Common values: "open", "completed". |
description | string | no | Updated task description (supports Markdown). |
assignee_id | integer | no | User ID to reassign the task to. |
due_date | string | no | Updated due date in ISO 8601 format (e.g., "2026-04-30"). |
priority | integer | no | Updated priority level. |
section_id | integer | no | Move the task to a different section (column). |
labels | array | no | Updated array of label names or IDs. |
get_current_user Read
Get the profile of the currently authenticated MeisterTask user, including name, email, and account details.
- Lua path
app.integrations.meistertask.get_current_user- Full name
meistertask.meistertask_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||