KosmoKrator

productivity

Linode Lua API for KosmoKrator Agents

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

7 functions 7 read 0 write Bearer token auth

Lua Namespace

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

Agent-Facing Lua Docs

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

Linode — Lua API Reference

list_instances

List all Linode instances (virtual machines) in the account.

Parameters

NameTypeRequiredDescription
pageintegernoPage number for pagination (default: 1)
per_pageintegernoItems per page (default: 100, max: 500)

Example

local result = app.integrations.linode.list_instances({
  per_page = 50
})

for _, instance in ipairs(result.data) do
  print(instance.label .. " (" .. instance.status .. ") - " .. instance.type)
end

get_instance

Get details for a specific Linode instance.

Parameters

NameTypeRequiredDescription
idintegeryesThe Linode instance ID

Example

local result = app.integrations.linode.get_instance({ id = 12345678 })
local i = result
print(i.label .. " - " .. i.region .. " - " .. i.specs.vcpus .. " vCPUs, " .. i.specs.memory .. " MB RAM")

list_volumes

List all block storage volumes in the account.

Parameters

NameTypeRequiredDescription
pageintegernoPage number for pagination
per_pageintegernoItems per page

Example

local result = app.integrations.linode.list_volumes({})

for _, volume in ipairs(result.data) do
  print(volume.label .. " (" .. volume.size .. " GB) - " .. volume.status)
end

list_domains

List all DNS domains in the account.

Parameters

NameTypeRequiredDescription
pageintegernoPage number for pagination
per_pageintegernoItems per page

Example

local result = app.integrations.linode.list_domains({})

for _, domain in ipairs(result.data) do
  print(domain.domain .. " (status: " .. domain.status .. ")")
end

get_domain

Get details for a specific DNS domain.

Parameters

NameTypeRequiredDescription
idintegeryesThe domain ID

Example

local result = app.integrations.linode.get_domain({ id = 12345 })
print(result.domain .. " - SOA email: " .. result.soa_email)

list_stackscripts

List all StackScripts (reusable deployment scripts).

Parameters

NameTypeRequiredDescription
pageintegernoPage number for pagination
per_pageintegernoItems per page

Example

local result = app.integrations.linode.list_stackscripts({})

for _, script in ipairs(result.data) do
  print(script.label .. " (deployments: " .. script.deployments_total .. ")")
end

get_current_user

Get the current authenticated user profile information.

Parameters

None.

Example

local result = app.integrations.linode.get_current_user({})
print("User: " .. result.username .. " (" .. result.email .. ")")

Multi-Account Usage

If you have multiple Linode accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations.linode.list_instances({})

-- Explicit default (portable across setups)
app.integrations.linode.default.list_instances({})

-- Named accounts
app.integrations.linode.production.list_instances({})
app.integrations.linode.staging.list_instances({})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Linode — Lua API Reference

## list_instances

List all Linode instances (virtual machines) in the account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination (default: 1) |
| `per_page` | integer | no | Items per page (default: 100, max: 500) |

### Example

```lua
local result = app.integrations.linode.list_instances({
  per_page = 50
})

for _, instance in ipairs(result.data) do
  print(instance.label .. " (" .. instance.status .. ") - " .. instance.type)
end
```

---

## get_instance

Get details for a specific Linode instance.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Linode instance ID |

### Example

```lua
local result = app.integrations.linode.get_instance({ id = 12345678 })
local i = result
print(i.label .. " - " .. i.region .. " - " .. i.specs.vcpus .. " vCPUs, " .. i.specs.memory .. " MB RAM")
```

---

## list_volumes

List all block storage volumes in the account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |

### Example

```lua
local result = app.integrations.linode.list_volumes({})

for _, volume in ipairs(result.data) do
  print(volume.label .. " (" .. volume.size .. " GB) - " .. volume.status)
end
```

---

## list_domains

List all DNS domains in the account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |

### Example

```lua
local result = app.integrations.linode.list_domains({})

for _, domain in ipairs(result.data) do
  print(domain.domain .. " (status: " .. domain.status .. ")")
end
```

---

## get_domain

Get details for a specific DNS domain.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The domain ID |

### Example

```lua
local result = app.integrations.linode.get_domain({ id = 12345 })
print(result.domain .. " - SOA email: " .. result.soa_email)
```

---

## list_stackscripts

List all StackScripts (reusable deployment scripts).

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |

### Example

```lua
local result = app.integrations.linode.list_stackscripts({})

for _, script in ipairs(result.data) do
  print(script.label .. " (deployments: " .. script.deployments_total .. ")")
end
```

---

## get_current_user

Get the current authenticated user profile information.

### Parameters

None.

### Example

```lua
local result = app.integrations.linode.get_current_user({})
print("User: " .. result.username .. " (" .. result.email .. ")")
```

---

## Multi-Account Usage

If you have multiple Linode accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations.linode.list_instances({})

-- Explicit default (portable across setups)
app.integrations.linode.default.list_instances({})

-- Named accounts
app.integrations.linode.production.list_instances({})
app.integrations.linode.staging.list_instances({})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.linode.linode_list_instances({
  page = 1,
  per_page = 1
})
print(result)

Functions

linode_list_instances

List all Linode instances (virtual machines) in the account. Returns IDs, labels, status, type, region, and IP addresses.

Operation
Read read
Full name
linode.linode_list_instances
ParameterTypeRequiredDescription
page integer no Page number for pagination (default: 1).
per_page integer no Number of instances per page (default: 100, max: 500).

linode_get_instance

Get details for a specific Linode instance by ID. Returns full instance information including specs, networking, and disk config.

Operation
Read read
Full name
linode.linode_get_instance
ParameterTypeRequiredDescription
id integer yes The Linode instance ID.

linode_list_volumes

List all block storage volumes in the Linode account. Returns IDs, labels, size, status, and attached Linode info.

Operation
Read read
Full name
linode.linode_list_volumes
ParameterTypeRequiredDescription
page integer no Page number for pagination (default: 1).
per_page integer no Number of volumes per page (default: 100).

linode_list_domains

List all DNS domains managed in the Linode account. Returns domain IDs, names, status, and SOA records.

Operation
Read read
Full name
linode.linode_list_domains
ParameterTypeRequiredDescription
page integer no Page number for pagination (default: 1).
per_page integer no Number of domains per page (default: 100).

linode_get_domain

Get details for a specific DNS domain in Linode, including SOA records, status, and zone information.

Operation
Read read
Full name
linode.linode_get_domain
ParameterTypeRequiredDescription
id integer yes The domain ID.

linode_list_stackscripts

List all StackScripts (reusable deployment scripts) in the Linode account. Returns IDs, labels, descriptions, and deployment counts.

Operation
Read read
Full name
linode.linode_list_stackscripts
ParameterTypeRequiredDescription
page integer no Page number for pagination (default: 1).
per_page integer no Number of StackScripts per page (default: 100).

linode_get_current_user

Get information about the current authenticated Linode user, including username, email, and account status.

Operation
Read read
Full name
linode.linode_get_current_user
ParameterTypeRequiredDescription
No parameters.