OpenKakao

read / search / export

Read, search, and export messages.

Introduction

These commands answer a simple question: do you want a cheap cache-backed read, or do you need the real chat history surface?

read (default)

LOCO-first reads with an explicit REST fallback when you want cache-backed behavior.

read --rest

Force the older REST path when you only want a cheap cache-backed check.

search

Keyword lookup within a chat room.

export

Persist message history into JSON, CSV, or text files.

read is now LOCO-first

read prefers LOCO by default. Add --rest only when you explicitly want the old cache-backed path.

read

Read messages from a chat room. By default this uses LOCO and gives you the more reliable history path.

As of v0.7.1, read bootstraps from the LOGINLIST response for faster initial results. When you request a specific chat, the CLI passes that chatId in the LOGINLIST chatIds/maxIds arrays during connection. The server returns recent messages (including received ones) in the chatLog field of the login response. These messages are available immediately, before the first SYNCMSG round-trip. Messages from LOGINLIST are automatically deduplicated against subsequent SYNCMSG results, so you never see duplicates.

As of v0.9.3, read also merges messages from the local SQLite cache (populated by watch). This means messages captured during watch sessions are available in subsequent reads even if LOCO only returns a limited window. The merge is deduplicated by logId, so you never see duplicates. LOCO-fetched messages are also back-filled into the cache for future reads.

openkakao-rs read <chat_id> [OPTIONS]
FlagDescription
-n <COUNT>Number of messages (default: 30)
--before <LOG_ID>Before this logId (backward pagination)
--cursor <LOG_ID>Resume from cursor
--since <DATE>Filter after date (YYYY-MM-DD)
--allFetch all available messages
--delay-ms <MS>Delay between LOCO batches (default: 100)
--forceAllow LOCO full-history reads on open chats
--restForce REST cache-backed read path

Use --rest sparingly

--rest only sees messages that the KakaoTalk desktop app has populated into the recent cache. The default LOCO path is what you want for exports, automation, and repeatable reads.

Use default read for:

  • full or incremental history fetches
  • exports and automation
  • reads that should not depend on GUI recency

Use read --rest for:

  • quick cache inspection
  • checking whether the desktop app has recently opened a room
  • narrower, cheaper reads when full history is unnecessary
# Default: LOCO
openkakao-rs read <chat_id> --all --json > history.json

# Explicit REST fallback
openkakao-rs read <chat_id> --rest

Legacy command

loco-read still exists as a hidden compatibility command, but new usage should move to read.

Search messages in a chat room.

openkakao-rs search <chat_id> "keyword"

Use this when you know the chat and need message lookup, not full export flow.

export

Export messages to a file.

openkakao-rs export <chat_id> --format json
openkakao-rs export <chat_id> --format csv -o messages.csv
openkakao-rs export <chat_id> --format txt -o chat.txt
FlagDescription
--format <FORMAT>json, csv, or txt
-o <FILE>Output file path

Decision Guide

Use read

The default path for full history, exports, and automation.

Use read --rest

When you only want a cheap, cache-backed look at recent desktop app state.

Use search

When you already know the room and need keyword lookup rather than full retrieval.

Use export

When the next step is persistence in a file or another local tool.

On this page