KosmoKrator

ai

Devin Lua API for KosmoKrator Agents

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

5 functions 3 read 2 write API key auth

Lua Namespace

Agents call this integration through app.integrations.devin.*. Use lua_read_doc("integrations.devin") 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.

Devin AI — Lua API Reference

create_session

Create a new Devin AI session with a task prompt.

Parameters

NameTypeRequiredDescription
promptstringyesThe task description for Devin to execute
idempotency_keystringnoUnique key to prevent duplicate session creation

Examples

local result = app.integrations.devin.create_session({
  prompt = "Create a new React component for a login form with email and password fields"
})

print("Session ID: " .. result.session_id)
print("Status: " .. result.status)

With idempotency key

local result = app.integrations.devin.create_session({
  prompt = "Fix the failing tests in the auth module",
  idempotency_key = "fix-auth-tests-2026-04-05"
})

get_session

Retrieve details and current status of a Devin session.

Parameters

NameTypeRequiredDescription
session_idstringyesThe ID of the session to retrieve

Examples

local result = app.integrations.devin.get_session({
  session_id = "sess_abc123"
})

print("Status: " .. result.status)
print("Created at: " .. result.created_at)

list_sessions

List all Devin sessions.

Parameters

None.

Examples

local result = app.integrations.devin.list_sessions()

for _, session in ipairs(result.sessions or {}) do
  print(session.session_id .. " - " .. session.status)
end

send_message

Send a message to an existing Devin session.

Parameters

NameTypeRequiredDescription
session_idstringyesThe ID of the session to message
messagestringyesThe message content to send

Examples

local result = app.integrations.devin.send_message({
  session_id = "sess_abc123",
  message = "Can you also add form validation to the login component?"
})

get_current_user

Get information about the currently authenticated Devin user.

Parameters

None.

Examples

local result = app.integrations.devin.get_current_user()

print("User: " .. (result.name or "Unknown"))
print("Email: " .. (result.email or "Unknown"))

Multi-Account Usage

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

-- Default account (always works)
app.integrations.devin.create_session({ prompt = "..." })

-- Explicit default (portable across setups)
app.integrations.devin.default.create_session({ prompt = "..." })

-- Named accounts
app.integrations.devin.work.create_session({ prompt = "..." })
app.integrations.devin.personal.create_session({ prompt = "..." })

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

Raw agent markdown
# Devin AI — Lua API Reference

## create_session

Create a new Devin AI session with a task prompt.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `prompt` | string | yes | The task description for Devin to execute |
| `idempotency_key` | string | no | Unique key to prevent duplicate session creation |

### Examples

```lua
local result = app.integrations.devin.create_session({
  prompt = "Create a new React component for a login form with email and password fields"
})

print("Session ID: " .. result.session_id)
print("Status: " .. result.status)
```

### With idempotency key

```lua
local result = app.integrations.devin.create_session({
  prompt = "Fix the failing tests in the auth module",
  idempotency_key = "fix-auth-tests-2026-04-05"
})
```

---

## get_session

Retrieve details and current status of a Devin session.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `session_id` | string | yes | The ID of the session to retrieve |

### Examples

```lua
local result = app.integrations.devin.get_session({
  session_id = "sess_abc123"
})

print("Status: " .. result.status)
print("Created at: " .. result.created_at)
```

---

## list_sessions

List all Devin sessions.

### Parameters

None.

### Examples

```lua
local result = app.integrations.devin.list_sessions()

for _, session in ipairs(result.sessions or {}) do
  print(session.session_id .. " - " .. session.status)
end
```

---

## send_message

Send a message to an existing Devin session.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `session_id` | string | yes | The ID of the session to message |
| `message` | string | yes | The message content to send |

### Examples

```lua
local result = app.integrations.devin.send_message({
  session_id = "sess_abc123",
  message = "Can you also add form validation to the login component?"
})
```

---

## get_current_user

Get information about the currently authenticated Devin user.

### Parameters

None.

### Examples

```lua
local result = app.integrations.devin.get_current_user()

print("User: " .. (result.name or "Unknown"))
print("Email: " .. (result.email or "Unknown"))
```

---

## Multi-Account Usage

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

```lua
-- Default account (always works)
app.integrations.devin.create_session({ prompt = "..." })

-- Explicit default (portable across setups)
app.integrations.devin.default.create_session({ prompt = "..." })

-- Named accounts
app.integrations.devin.work.create_session({ prompt = "..." })
app.integrations.devin.personal.create_session({ prompt = "..." })
```

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

Metadata-Derived Lua Example

local result = app.integrations.devin.devin_create_session({
  prompt = "example_prompt",
  idempotency_key = "example_idempotency_key"
})
print(result)

Functions

devin_create_session

Create a new Devin AI session. Provide a task prompt describing what you want Devin to do. Optionally provide an idempotency key to prevent duplicate sessions.

Operation
Write write
Full name
devin.devin_create_session
ParameterTypeRequiredDescription
prompt string yes The task description for Devin to execute. Be specific about what you want accomplished.
idempotency_key string no An optional unique key to prevent duplicate session creation. If a session with this key already exists, the existing session is returned.

devin_get_session

Retrieve details and current status of a Devin session. Use this to check progress on a task, view the session state, or get the output.

Operation
Read read
Full name
devin.devin_get_session
ParameterTypeRequiredDescription
session_id string yes The ID of the Devin session to retrieve.

devin_list_sessions

List all Devin sessions. Returns an overview of all sessions including their IDs, statuses, and creation times.

Operation
Read read
Full name
devin.devin_list_sessions
ParameterTypeRequiredDescription
No parameters.

devin_send_message

Send a message to an existing Devin session. Use this to provide additional instructions, ask questions, or guide the AI during an active session.

Operation
Write write
Full name
devin.devin_send_message
ParameterTypeRequiredDescription
session_id string yes The ID of the Devin session to send the message to.
message string yes The message content to send to the session.

devin_get_current_user

Get information about the currently authenticated Devin user. Use this to verify the API connection and identify which account is being used.

Operation
Read read
Full name
devin.devin_get_current_user
ParameterTypeRequiredDescription
No parameters.