OpenKakao

send / send-file / edit / delete / react / mark-read

Send messages, edit messages, delete messages, add reactions, and mark as read.

send

Send a text message via LOCO WRITE command.

openkakao-rs send <chat_id> "message" [OPTIONS]
FlagDescription
-y, --yesSkip confirmation prompt
--forceAllow sending to open chats
--jsonOutput result as JSON (global flag)

When --json is set, a successful send returns:

{"chat_id": 382416827148557, "log_id": 123456789, "status": "sent"}

If you use -y, you must also allow unattended send behavior:

  • CLI: --unattended --allow-non-interactive-send
  • or config: mode.unattended = true and send.allow_non_interactive = true

Unattended sends are rate-limited by safety.min_unattended_send_interval_secs so a bad wrapper cannot burst messages immediately.

Messages are prefixed with 🤖 [Sent via openkakao] by default. Use the global --no-prefix flag to disable:

openkakao-rs --unattended --allow-non-interactive-send --no-prefix send <chat_id> "raw message" -y

send-file

Send a file (photo, video, or document) via LOCO SHIP+POST.

openkakao-rs send-file <chat_id> <file> [OPTIONS]
FlagDescription
-y, --yesSkip confirmation prompt
--forceAllow sending to open chats

As with text sends, -y requires unattended send permission.

The media type is auto-detected from file magic bytes:

Magic BytesTypeLOCO Code
FF D8JPEG photo2
89 50 4E 47PNG photo2
GIF8GIF animation14
ftyp (offset 4)MP4/MOV video3
1A 45 DF A3WebM video3
OtherGeneric file26

send-photo

Alias for send-file. Identical behavior.

openkakao-rs --unattended --allow-non-interactive-send send-photo <chat_id> photo.jpg -y

edit

Edit a message via LOCO REWRITE command.

openkakao-rs edit <chat_id> <log_id> "new message" [OPTIONS]
FlagDescription
-y, --yesSkip confirmation prompt
--forceAllow editing in open chats
--jsonOutput result as JSON (global flag)

When --json is set:

{"chat_id": 382416827148557, "log_id": 123456789, "status": "edited"}

As with send, -y requires unattended send permission.

macOS dtype=2 restriction

REWRITE returns error -203 on macOS. This is a server-enforced platform restriction — message editing only works on Android (dtype=1). The command is implemented for future cross-platform support.


delete

Delete a message via LOCO DELETEMSG. The message is replaced by a system feed (feedType:14) in DM chats.

openkakao-rs delete <chat_id> <log_id> [OPTIONS]
FlagDescription
-y, --yesSkip confirmation prompt
--forceAllow deleting in open chats
--jsonOutput result as JSON (global flag)

When --json is set:

{"chat_id": 382416827148557, "log_id": 123456789, "status": "deleted"}

As with send, -y requires unattended send permission (--unattended --allow-non-interactive-send or the equivalent config).

MemoChat limitation

DELETEMSG returns status=0 in MemoChat but the message is not actually deleted on mobile — the message type changes to 16385 instead of being removed.


react

Add a reaction to a message via LOCO ACTION command.

openkakao-rs react <chat_id> <log_id> [OPTIONS]
FlagDescription
-t, --type <N>Reaction type (default: 1 = like)
--jsonOutput result as JSON (global flag)

When --json is set:

{"chat_id": 382416827148557, "log_id": 123456789, "reaction_type": 1, "status": "reacted"}

macOS dtype=2 restriction

Only reaction type 1 (like) is supported on macOS. Other types (0, 2–16, 100) return error -203.


mark-read

Mark messages as read up to a specific logId via LOCO NOTIREAD. This is a fire-and-forget command — no response is expected from the server.

openkakao-rs mark-read <chat_id> <log_id> [OPTIONS]
FlagDescription
--jsonOutput result as JSON (global flag)

When --json is set:

{"chat_id": 382416827148557, "watermark": 123456789, "status": "marked_read"}

On this page