productivity
Taiga Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Taiga KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.taiga.*.
Use lua_read_doc("integrations.taiga") 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
Taiga workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.taiga.list_projects({membership = "example_membership", slug = "example_slug", order_by = "example_order_by", page = 1, page_size = 1}))' --json kosmo integrations:lua --eval 'print(docs.read("taiga"))' --json
kosmo integrations:lua --eval 'print(docs.read("taiga.list_projects"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local taiga = app.integrations.taiga
local result = taiga.list_projects({membership = "example_membership", slug = "example_slug", order_by = "example_order_by", page = 1, page_size = 1})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.taiga, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.taiga.default.* or app.integrations.taiga.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Taiga, 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.
Taiga — Lua API Reference
list_projects
List all Taiga projects you have access to.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
membership | string | no | Filter by membership: "admin", "project_owner", "member" |
slug | string | no | Filter by project slug |
order_by | string | no | Order results (e.g., "name", "-created_date") |
page | integer | no | Page number for pagination (default: 1) |
page_size | integer | no | Results per page (default: 40) |
Example
local result = app.integrations.taiga.list_projects({})
for _, project in ipairs(result) do
print(project.name .. " (slug: " .. project.slug .. ")")
end
get_project
Get detailed information about a specific Taiga project.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Taiga project ID |
Example
local result = app.integrations.taiga.get_project({ id = 1 })
print("Project: " .. result.name)
print("Description: " .. (result.description or "N/A"))
list_user_stories
List user stories, optionally filtered by project, status, milestone, or assignee.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
project | integer | no | Filter by project ID |
project__slug | string | no | Filter by project slug |
status | string | no | Filter by status name (e.g., "New", "In progress", "Done") |
milestone | integer | no | Filter by milestone (sprint) ID |
assigned_to | integer | no | Filter by assigned user ID |
tags | string | no | Filter by tags (comma-separated) |
order_by | string | no | Order results (e.g., "subject", "-created_date") |
page | integer | no | Page number for pagination |
page_size | integer | no | Results per page |
Example
-- List all stories in a project
local result = app.integrations.taiga.list_user_stories({
project = 1,
page_size = 20
})
for _, story in ipairs(result) do
print(story.subject .. " — " .. (story.status_extra_info and story.status_extra_info.name or "unknown status"))
end
-- Filter by status
local result = app.integrations.taiga.list_user_stories({
project = 1,
status = "In progress"
})
get_user_story
Get detailed information about a specific user story.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Taiga user story ID |
Example
local result = app.integrations.taiga.get_user_story({ id = 42 })
print("Subject: " .. result.subject)
print("Description: " .. (result.description or "N/A"))
create_user_story
Create a new user story in a Taiga project.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
project | integer | yes | Project ID |
subject | string | yes | User story title |
description | string | no | Description (supports Markdown) |
status | integer | no | Status ID |
assigned_to | integer | no | User ID to assign |
milestone | integer | no | Milestone (sprint) ID |
tags | array | no | Array of tag strings |
points | object | no | Story points (role ID → point value) |
Example
local result = app.integrations.taiga.create_user_story({
project = 1,
subject = "As a user, I want to export reports",
description = "Users should be able to export reports as PDF.",
tags = { "feature", "reports" }
})
print("Created story #" .. result.id .. ": " .. result.subject)
list_issues
List issues, optionally filtered by project, status, priority, or severity.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
project | integer | no | Filter by project ID |
project__slug | string | no | Filter by project slug |
status | string | no | Filter by status name |
priority | string | no | Filter by priority ("Low", "Normal", "High", "Critical") |
severity | string | no | Filter by severity ("Wishlist", "Minor", "Normal", "Important", "Critical") |
assigned_to | integer | no | Filter by assigned user ID |
tags | string | no | Filter by tags (comma-separated) |
order_by | string | no | Order results |
page | integer | no | Page number for pagination |
page_size | integer | no | Results per page |
Example
-- List open issues for a project
local result = app.integrations.taiga.list_issues({
project = 1,
status = "New"
})
for _, issue in ipairs(result) do
print(issue.subject .. " — Priority: " .. (issue.priority_extra_info and issue.priority_extra_info.name or "N/A"))
end
-- List critical issues
local result = app.integrations.taiga.list_issues({
project = 1,
priority = "Critical"
})
get_current_user
Get the authenticated Taiga user profile.
Parameters
None.
Example
local result = app.integrations.taiga.get_current_user({})
print("Logged in as: " .. result.full_name .. " (" .. result.username .. ")")
Multi-Account Usage
If you have multiple Taiga accounts configured, use account-specific namespaces:
-- Default account (always works)
app.integrations.taiga.list_projects({})
-- Explicit default (portable across setups)
app.integrations.taiga.default.list_projects({})
-- Named accounts
app.integrations.taiga.work.list_projects({})
app.integrations.taiga.personal.list_projects({})
All functions are identical across accounts — only the credentials differ.
Raw agent markdown
# Taiga — Lua API Reference
## list_projects
List all Taiga projects you have access to.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `membership` | string | no | Filter by membership: `"admin"`, `"project_owner"`, `"member"` |
| `slug` | string | no | Filter by project slug |
| `order_by` | string | no | Order results (e.g., `"name"`, `"-created_date"`) |
| `page` | integer | no | Page number for pagination (default: 1) |
| `page_size` | integer | no | Results per page (default: 40) |
### Example
```lua
local result = app.integrations.taiga.list_projects({})
for _, project in ipairs(result) do
print(project.name .. " (slug: " .. project.slug .. ")")
end
```
---
## get_project
Get detailed information about a specific Taiga project.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Taiga project ID |
### Example
```lua
local result = app.integrations.taiga.get_project({ id = 1 })
print("Project: " .. result.name)
print("Description: " .. (result.description or "N/A"))
```
---
## list_user_stories
List user stories, optionally filtered by project, status, milestone, or assignee.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | no | Filter by project ID |
| `project__slug` | string | no | Filter by project slug |
| `status` | string | no | Filter by status name (e.g., `"New"`, `"In progress"`, `"Done"`) |
| `milestone` | integer | no | Filter by milestone (sprint) ID |
| `assigned_to` | integer | no | Filter by assigned user ID |
| `tags` | string | no | Filter by tags (comma-separated) |
| `order_by` | string | no | Order results (e.g., `"subject"`, `"-created_date"`) |
| `page` | integer | no | Page number for pagination |
| `page_size` | integer | no | Results per page |
### Example
```lua
-- List all stories in a project
local result = app.integrations.taiga.list_user_stories({
project = 1,
page_size = 20
})
for _, story in ipairs(result) do
print(story.subject .. " — " .. (story.status_extra_info and story.status_extra_info.name or "unknown status"))
end
```
```lua
-- Filter by status
local result = app.integrations.taiga.list_user_stories({
project = 1,
status = "In progress"
})
```
---
## get_user_story
Get detailed information about a specific user story.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Taiga user story ID |
### Example
```lua
local result = app.integrations.taiga.get_user_story({ id = 42 })
print("Subject: " .. result.subject)
print("Description: " .. (result.description or "N/A"))
```
---
## create_user_story
Create a new user story in a Taiga project.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | yes | Project ID |
| `subject` | string | yes | User story title |
| `description` | string | no | Description (supports Markdown) |
| `status` | integer | no | Status ID |
| `assigned_to` | integer | no | User ID to assign |
| `milestone` | integer | no | Milestone (sprint) ID |
| `tags` | array | no | Array of tag strings |
| `points` | object | no | Story points (role ID → point value) |
### Example
```lua
local result = app.integrations.taiga.create_user_story({
project = 1,
subject = "As a user, I want to export reports",
description = "Users should be able to export reports as PDF.",
tags = { "feature", "reports" }
})
print("Created story #" .. result.id .. ": " .. result.subject)
```
---
## list_issues
List issues, optionally filtered by project, status, priority, or severity.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | no | Filter by project ID |
| `project__slug` | string | no | Filter by project slug |
| `status` | string | no | Filter by status name |
| `priority` | string | no | Filter by priority (`"Low"`, `"Normal"`, `"High"`, `"Critical"`) |
| `severity` | string | no | Filter by severity (`"Wishlist"`, `"Minor"`, `"Normal"`, `"Important"`, `"Critical"`) |
| `assigned_to` | integer | no | Filter by assigned user ID |
| `tags` | string | no | Filter by tags (comma-separated) |
| `order_by` | string | no | Order results |
| `page` | integer | no | Page number for pagination |
| `page_size` | integer | no | Results per page |
### Example
```lua
-- List open issues for a project
local result = app.integrations.taiga.list_issues({
project = 1,
status = "New"
})
for _, issue in ipairs(result) do
print(issue.subject .. " — Priority: " .. (issue.priority_extra_info and issue.priority_extra_info.name or "N/A"))
end
```
```lua
-- List critical issues
local result = app.integrations.taiga.list_issues({
project = 1,
priority = "Critical"
})
```
---
## get_current_user
Get the authenticated Taiga user profile.
### Parameters
None.
### Example
```lua
local result = app.integrations.taiga.get_current_user({})
print("Logged in as: " .. result.full_name .. " (" .. result.username .. ")")
```
---
## Multi-Account Usage
If you have multiple Taiga accounts configured, use account-specific namespaces:
```lua
-- Default account (always works)
app.integrations.taiga.list_projects({})
-- Explicit default (portable across setups)
app.integrations.taiga.default.list_projects({})
-- Named accounts
app.integrations.taiga.work.list_projects({})
app.integrations.taiga.personal.list_projects({})
```
All functions are identical across accounts — only the credentials differ. local result = app.integrations.taiga.list_projects({membership = "example_membership", slug = "example_slug", order_by = "example_order_by", page = 1, page_size = 1})
print(result) Functions
list_projects Read
List all Taiga projects you have access to. Returns project names, slugs, and descriptions that you can use to query user stories and issues.
- Lua path
app.integrations.taiga.list_projects- Full name
taiga.taiga_list_projects
| Parameter | Type | Required | Description |
|---|---|---|---|
membership | string | no | Filter by membership: "admin", "project_owner", "member". |
slug | string | no | Filter by project slug. |
order_by | string | no | Order results by a field (e.g. "name", "-created_date"). |
page | integer | no | Page number for pagination (default: 1). |
page_size | integer | no | Number of results per page (default: 40). |
get_project Read
Get detailed information about a specific Taiga project by its ID. Returns project name, slug, description, statuses, and membership details.
- Lua path
app.integrations.taiga.get_project- Full name
taiga.taiga_get_project
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Taiga project ID. |
list_user_stories Read
List user stories from Taiga. Filter by project, status, milestone, or assignee. Returns story subjects, descriptions, and statuses.
- Lua path
app.integrations.taiga.list_user_stories- Full name
taiga.taiga_list_user_stories
| Parameter | Type | Required | Description |
|---|---|---|---|
project | integer | no | Filter by project ID. |
project__slug | string | no | Filter by project slug (e.g., "my-project"). |
status | string | no | Filter by status name (e.g., "New", "In progress", "Ready for test", "Done"). |
milestone | integer | no | Filter by milestone (sprint) ID. |
assigned_to | integer | no | Filter by assigned user ID. |
tags | string | no | Filter by tags as a comma-separated string. |
order_by | string | no | Order results (e.g., "subject", "-created_date", "backlog_order"). |
page | integer | no | Page number for pagination (default: 1). |
page_size | integer | no | Number of results per page (default: 40). |
get_user_story Read
Get detailed information about a specific Taiga user story by its ID. Returns the full story with subject, description, status, assignee, and points.
- Lua path
app.integrations.taiga.get_user_story- Full name
taiga.taiga_get_user_story
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Taiga user story ID. |
create_user_story Write
Create a new user story in a Taiga project. Requires project ID and subject. Optionally include description, tags, status, and assignee.
- Lua path
app.integrations.taiga.create_user_story- Full name
taiga.taiga_create_user_story
| Parameter | Type | Required | Description |
|---|---|---|---|
project | integer | yes | The Taiga project ID to create the story in. |
subject | string | yes | The user story title / subject line. |
description | string | no | Detailed description of the user story. Supports Markdown formatting. |
status | integer | no | Status ID for the user story. Omit to use the default status. |
assigned_to | integer | no | User ID to assign the story to. |
milestone | integer | no | Milestone (sprint) ID to associate with. |
tags | array | no | Array of tag strings to apply (e.g., ["frontend", "bug"]). |
points | object | no | Story points as a mapping of role ID to point value (e.g., {"1": 3}). |
list_issues Read
List issues from Taiga. Filter by project, status, priority, severity, or assignee. Returns issue subjects, descriptions, and statuses.
- Lua path
app.integrations.taiga.list_issues- Full name
taiga.taiga_list_issues
| Parameter | Type | Required | Description |
|---|---|---|---|
project | integer | no | Filter by project ID. |
project__slug | string | no | Filter by project slug (e.g., "my-project"). |
status | string | no | Filter by status name (e.g., "New", "In progress", "Ready for test", "Closed"). |
priority | string | no | Filter by priority name (e.g., "Low", "Normal", "High", "Critical"). |
severity | string | no | Filter by severity name (e.g., "Wishlist", "Minor", "Normal", "Important", "Critical"). |
assigned_to | integer | no | Filter by assigned user ID. |
tags | string | no | Filter by tags as a comma-separated string. |
order_by | string | no | Order results (e.g., "subject", "-created_date", "severity"). |
page | integer | no | Page number for pagination (default: 1). |
page_size | integer | no | Number of results per page (default: 40). |
get_current_user Read
Get the currently authenticated Taiga user profile. Returns user details like full name, username, and email.
- Lua path
app.integrations.taiga.get_current_user- Full name
taiga.taiga_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||