whsoul/kaflow-search

Desktop app for searching Kafka messages — locally indexed, not scanned. macOS and Windows open beta. (kafka search)

Rust

6

123 commits

updated Sep 8, 2026

See the code
desktop-app
kafka
kafka-client
kafka-search
kafka-tools
kafka-ui
kaflow-search
mac-intel
macos
mac-silicon
search
tauri
windows
windows-10
windows-11

README

Open Beta      English   한국어   日本語   中文

Kaflow Search — fast desktop search for Kafka messages, locally indexed rather than scanned. Works with any Kafka, Avro and Protobuf, SASL / TLS / AWS MSK IAM.

A desktop search engine for your Kafka messages

Find matching Kafka messages among millions — in seconds, on your own machine.

Local indexing · No extra infrastructure · No sign-up · Your data stays local

⬇ Download · Website · Install guide · Issues


What it does

🔎 Search, not scanKeyword or field search across millions of indexed rows, in seconds
🧩 Compound conditionsAND / OR / NOT over keys, headers and nested JSON fields
🕒 Narrow by timeExact time range, or drill down from a time-series chart
👁 Watch a keywordPin one, leave it open — the chart advances on its own
🧬 Decode payloadsJSON · Avro · Protobuf — local schemas or Confluent Schema Registry
📤 Export resultsJSONL / CSV / TSV, optionally gzip or zstd
🔐 Connects where you areAWS MSK (IAM) · SASL/SCRAM · SSL/TLS · Confluent Schema Registry
🔌 Works offlineIndexed data stays searchable when the cluster is unreachable

Fast seconds across millions of rows · searching never re-reads Kafka

Light one desktop app · no server, connector or database · auto-cleanup within a limit you set

Powerful nested JSON and header conditions · AND/OR/NOT · time-series drill-down · Avro/Protobuf · connects to AWS MSK and other managed clusters

Private installed on your machine, not a cloud service · messages never leave it · passwords never stored

Easy on your cluster read-only, and it only reads while indexing or syncing. After that, repeated queries request nothing from the cluster


Demo

Kaflow Search demo
▶ Watch the full walkthrough (3 min) — every step, at real speed
Keyword search results, with matches highlighted
Search results
Advanced search — AND/OR/NOT conditions over nested JSON fields, with matching results below
Compound conditions
Message detail — decoded payload and headers
Message detail

Download

macOS — install with Homebrew:

brew install --cask whsoul/tap/kaflow-search && open -a "Kaflow Search"

The command selects the right build for Apple Silicon or Intel. On first launch, follow the one-time macOS approval steps.

OSArchitectureFile
macOSApple Silicon.dmg
macOSIntel.dmg
Windowsx64.exe / .msi
LinuxBuilt if enough people want it — add your vote

⬇ Get the latest release — download only from here.

Requirements — macOS 11 (Big Sur) or later, or Windows 10 or later (x64) · Apache Kafka 2.4 or later (which environments)

Size75–85 MB to download, about 105 MB once installed
Free spaceOn top of that, allow 10 GB or more per cluster for the local index (two clusters = 20 GB or more). The index limit is adjustable in settings
Disk typeSSD recommended. Indexing is write-heavy — an HDD works but will be noticeably slower

No separate database or service is required.

🔔 Want to know when a new version lands? Use [Watch ▾] → Custom → ☑ Releases at the top of this repository and you'll be notified on every release — handy if you're waiting on a platform that's still in progress.

Install

⚠️ Your OS will warn you. That is expected.

Kaflow Search is not yet registered as a verified developer with Apple or Microsoft — that requires paid certificates this project hasn't purchased. So your OS flags it as coming from an unidentified developer. It does not mean anything harmful was found. Allow it once using the steps below and it runs normally from then on.

(If you want to, you can also check that your download wasn't tampered with. Not required.)

macOS — System Settings → "Open Anyway"

Homebrew (recommended)

brew install --cask whsoul/tap/kaflow-search && open -a "Kaflow Search"

This installs the build for your Mac and attempts the first launch. If Homebrew reports that /Applications/Kaflow Search.app already exists, quit Kaflow Search and move the previous manually installed app out of Applications, then run the command again. Your settings and local indexes remain in ~/.kaflow; moving the app itself does not remove them.

When macOS shows the message in step 2 below, click OK, then continue with step 3.

Manual DMG installation

  1. Open the .dmg and drag Kaflow Search into your Applications folder.

    💡 Don't launch it from inside the DMG. Move it first, then run it from Applications — otherwise you'll go through the approval twice. (Approval applies to one file, so approving the copy inside the DMG doesn't carry over to the one you copied out.)

  2. Launch it from Applications. When this appears, click OK:

    "Kaflow Search" can't be opened because Apple cannot check it for malicious software.

  3. Go to System Settings → Privacy & Security, and under Security click [Open Anyway]. Confirm once more in the dialog that follows.

    "Kaflow Search" was blocked from use because it is not from an identified developer.

    (The button only appears right after step 2 was blocked. If you don't see it, launch the app again.)

Some setups ask twice — once after installing, once on first launch. Nothing is wrong; just approve it the same way again. It won't ask after that.


To skip all of it, run this once in Terminal instead, then open the app normally:

xattr -dr com.apple.quarantine "/Applications/Kaflow Search.app"

(Once per installed version. Exact wording varies by macOS version.)

Windows — Continue past the "Unknown publisher" warning

Windows may show an Unknown publisher or Microsoft Defender SmartScreen warning during installation. As on macOS, this appears because Kaflow Search does not yet use a paid code-signing certificate; it does not mean Windows found anything harmful. Select More info → Run anyway to continue.

Starting with v0.1.3, the Microsoft Visual C++ runtime is linked into the app, so there is nothing extra to install. If you are still using the v0.1.2 Windows Preview and it closes immediately after launch, update to the latest release. As a fallback for that Preview build, install the Microsoft Visual C++ Redistributable (x64). The old runtime issue may appear in Windows Event Viewer as MSVCP140.dll, VCRUNTIME140.dll, or exception code 0xc0000005.

If it still does not start, open a bug report and include your Windows version and any Event Viewer error shown for Kaflow Search.

Getting started

StepNote
1Connect to a clusterPasswords are never saved — entered per connection
2Pick topics to indexDeserializer and cleanup policy are auto-suggested from a sample
3IndexOne pass over the topic. The app stays usable while it runs
4SearchKeyword, or conditions across keys / headers / JSON fields
Connecting to AWS MSK (IAM auth)

MSK isn't a separate menu — it lives inside the SASL mechanism list. On the connect screen:

  1. Security protocolSASL_SSL (MSK requires TLS; SASL_PLAINTEXT will not connect)
  2. SASL mechanismAWS MSK IAM (IAM access key)
  3. If you have ~/.aws/credentials, a profile picker appears — pick one and the access key and region are filled in for you. (With a single profile it applies directly, no picker.)
  4. Otherwise, or for SSO-only profiles, enter them yourself: AWS Access Key ID / AWS Secret Access Key / Region (e.g. ap-northeast-2 — where your MSK cluster lives)

Keys are not stored — they're used for that connection only, and re-entered or re-loaded from the profile next time.

If it fails with Access denied, the failure dialog offers a minimum-privilege IAM policy JSON you can copy. MSK returns the same message for a mistyped key, a wrong region, missing permissions and a permission boundary alike — so the app lists what to check instead of guessing the cause.


Details

Why a local index

A large Kafka cluster does not mean copying the whole cluster onto your computer. You choose the topics that matter, and Kaflow keeps their local search indexes within a configured storage budget.

The problemKafka is a log, not a database — there's no way to look up "the message with this order ID"
What Kaflow doesReads each topic once, builds a local index. Every later search hits the index, not Kafka
Selective indexingYou choose which topics to index. Kaflow does not automatically index every topic in the cluster
Bounded local storageA configurable storage budget and cleanup policies keep local indexes from growing without bound
ScopeSearches what is still in your topics — it mirrors Kafka retention, it is not an archive
Management toolsNo overlap, no conflict. Keep yours for operating the cluster; use Kaflow to find things

Data and safety

Messages, indexes, queriesProcessed on your machine. Never uploaded to any Kaflow server
Passwords, tokens, secret keysNever stored. Held in memory for the session, re-entered on each connection
Stored locally (~/.kaflow/)Non-secret metadata only — protocol, mechanism, username, certificate paths
Writes to your clusterNone. Read-only: Metadata, ApiVersions, DescribeConfigs, DescribeTopicPartitions, Fetch, ListOffsets. No Produce, no admin calls — it cannot alter topics, consumer groups or ACLs
Read load on your clusterOnly while indexing and syncing. Searching, exploring and exporting all run off the local index, so repeating them sends nothing to the cluster (opening a message's raw payload is the exception)
Sent to KaflowOn startup, and again every few hours while the app is open, for version support and announcements: random instance ID · hashed machine ID · app version · OS/arch · UI language. Nothing about your Kafka setup or messages
Diagnostic reportsGenerated locally, sent only if you choose to

Full detail, including retention: PRIVACY.md

Verifying your download wasn't tampered with (optional)

This is not required to install or run the app. Skip it and everything works fine. It's here for people who want the extra assurance.

Every release ships a SHA256SUMS file, and the release notes list the same SHA-256 values. Computing the fingerprint of your download and comparing it tells you the file wasn't corrupted in transit or swapped out along the way.

# macOS — put SHA256SUMS in the same folder and check everything at once
shasum -a 256 -c SHA256SUMS
# Windows — compute the value and compare it against the release notes by eye
Get-FileHash <file> -Algorithm SHA256

If a value doesn't match, don't use that file — delete it and download again.

⚠️ Know the limit. The file and its checksum live on the same page, so if the release page itself were compromised, both would change together and this check wouldn't catch it. Guarding against that is what developer verification (code signing) does — which this project doesn't have yet.

Before you connect
  • Confirm you're authorized to read the cluster and topics
  • Follow your organization's security and data-handling policy
  • Local indexes and exports are unencrypted on disk — store accordingly
  • Prefer a least-privilege Kafka account
  • Strip credentials and message contents before sharing logs

Supported environments

Security protocolPLAINTEXT · SSL · SASL_PLAINTEXT · SASL_SSL
SASL mechanismPLAIN · SCRAM-SHA-256 · SCRAM-SHA-512 · OAUTHBEARER · AWS MSK IAM
CertificatesPEM · PKCS#12 (.p12 / .pfx)
Schema RegistryConfluent (Avro, Protobuf, incl. schema references)
Kafka versionsTarget 2.4 – 4.x · verified: Kafka 2.4.x (local), AWS MSK with IAM

Other versions and managed services are expected to work but aren't verified yet — tell us how it went. Connection success also depends on broker config, network policy and provider-specific auth, not the version alone.

What you can search
TargetExample
Message keyK.orderId — plain value or nested JSON
PayloadP.customer.email — plain text or nested JSON
HeaderH.trace-id
ArraysP.items[*].sku — flattened to one path
Condition
Matchexact · prefix · lexical range within a field
BooleanAND / OR / NOT, with minimum-match count for OR
Filterstimestamp range · partition / offset range
Wordsword-level matching on fields you mark as tokenized
Exploring
Chartstime-series with drill-down into matching messages
Treesoffset tree · date tree · partition placement · latest messages
DetailJSON highlighting, copy
ExportJSONL / CSV / TSV × gzip / zstd — runs off the local index, works offline
Resource limits

Limits on disk, on scale, and on how indexes are kept and cleaned up are set so that Kaflow stays well-behaved on your machine. The app shows the ones in force under Settings, and enforces exactly what it shows.

Indexing time and disk use vary with message count, size, partitions, indexed fields and disk speed. No fixed performance is guaranteed.

Project status

Version 0.1.3 — open beta. Usable for daily work.

Known limitations

One topic at a timeMulti-topic search is the next feature
Text-based rangesNumeric/date range search (amount 50–100) not available yet
Manual updatesNo auto-update — new versions are installed by hand
UnsignedSee Install

⚠️ No results means nothing matched in your local index — not that the message never existed in Kafka. It may predate your index, or fall outside the fields and range you indexed.

Feedback

Report a bug · Connection problem · All issues

Each form asks only for what turns out to settle the question. For connection problems that is the service, the Kafka version, how you authenticate, and whether other clients reach the cluster from the same machine.

🔒 Never put passwords, tokens, private keys, certificates or real message contents in a public issue.

Supporting the project

Built and maintained independently. Support is voluntary — not a purchase, subscription or commitment to any feature or timeline. Free usage terms are the same either way.

What support would go toward: code-signing certificates for macOS and Windows — which is why the install warnings are still there. Beyond that, testing across more platforms and Kafka versions, and release infrastructure.

This repository

Official public repository — releases, documentation, issues, roadmap.

Source-available, not open sourceThe frontend source and the search engine implementation are not here
What is herePublic API contracts · mock engine · desktop shell · a runnable demo build
WhyTransparency and evaluation. No open-source license applies unless a file says so — see LICENSE
ContributionsCode contributions aren't accepted. Issues and feedback very much are

LegalLICENSE (repository terms) · EULA (한국어) · Privacy (한국어) · Third-party notices

Proprietary software, currently free for personal use and internal business use under the EULA. Reselling, modifying, reverse-engineering, redistributing or bundling into another product is restricted. Future features or services may carry different terms, announced before they apply.

The app's interface is available in English · 한국어 · 日本語 · 中文.

Trademarks — Apache Kafka and Kafka are trademarks of the Apache Software Foundation. Kaflow Search is not affiliated with, endorsed by or sponsored by the ASF. Other names and marks belong to their respective owners.


Kaflow Search — a desktop search engine for your Kafka messages.

Download · Website · Issues · Privacy

Copyright © 2026 Whsoul Tools. Kaflow Search is a product of Whsoul Tools.

Contributors

whsoul

123 commits

whsoul/kaflow-search

Desktop app for searching Kafka messages — locally indexed, not scanned. macOS and Windows open beta. (kafka search)

Rust

6

123 commits

updated Sep 8, 2026

See the code
desktop-app
kafka
kafka-client
kafka-search
kafka-tools
kafka-ui
kaflow-search
mac-intel
macos
mac-silicon
search
tauri
windows
windows-10
windows-11

README

Open Beta      English   한국어   日本語   中文

Kaflow Search — fast desktop search for Kafka messages, locally indexed rather than scanned. Works with any Kafka, Avro and Protobuf, SASL / TLS / AWS MSK IAM.

A desktop search engine for your Kafka messages

Find matching Kafka messages among millions — in seconds, on your own machine.

Local indexing · No extra infrastructure · No sign-up · Your data stays local

⬇ Download · Website · Install guide · Issues


What it does

🔎 Search, not scanKeyword or field search across millions of indexed rows, in seconds
🧩 Compound conditionsAND / OR / NOT over keys, headers and nested JSON fields
🕒 Narrow by timeExact time range, or drill down from a time-series chart
👁 Watch a keywordPin one, leave it open — the chart advances on its own
🧬 Decode payloadsJSON · Avro · Protobuf — local schemas or Confluent Schema Registry
📤 Export resultsJSONL / CSV / TSV, optionally gzip or zstd
🔐 Connects where you areAWS MSK (IAM) · SASL/SCRAM · SSL/TLS · Confluent Schema Registry
🔌 Works offlineIndexed data stays searchable when the cluster is unreachable

Fast seconds across millions of rows · searching never re-reads Kafka

Light one desktop app · no server, connector or database · auto-cleanup within a limit you set

Powerful nested JSON and header conditions · AND/OR/NOT · time-series drill-down · Avro/Protobuf · connects to AWS MSK and other managed clusters

Private installed on your machine, not a cloud service · messages never leave it · passwords never stored

Easy on your cluster read-only, and it only reads while indexing or syncing. After that, repeated queries request nothing from the cluster


Demo

Kaflow Search demo
▶ Watch the full walkthrough (3 min) — every step, at real speed
Keyword search results, with matches highlighted
Search results
Advanced search — AND/OR/NOT conditions over nested JSON fields, with matching results below
Compound conditions
Message detail — decoded payload and headers
Message detail

Download

macOS — install with Homebrew:

brew install --cask whsoul/tap/kaflow-search && open -a "Kaflow Search"

The command selects the right build for Apple Silicon or Intel. On first launch, follow the one-time macOS approval steps.

OSArchitectureFile
macOSApple Silicon.dmg
macOSIntel.dmg
Windowsx64.exe / .msi
LinuxBuilt if enough people want it — add your vote

⬇ Get the latest release — download only from here.

Requirements — macOS 11 (Big Sur) or later, or Windows 10 or later (x64) · Apache Kafka 2.4 or later (which environments)

Size75–85 MB to download, about 105 MB once installed
Free spaceOn top of that, allow 10 GB or more per cluster for the local index (two clusters = 20 GB or more). The index limit is adjustable in settings
Disk typeSSD recommended. Indexing is write-heavy — an HDD works but will be noticeably slower

No separate database or service is required.

🔔 Want to know when a new version lands? Use [Watch ▾] → Custom → ☑ Releases at the top of this repository and you'll be notified on every release — handy if you're waiting on a platform that's still in progress.

Install

⚠️ Your OS will warn you. That is expected.

Kaflow Search is not yet registered as a verified developer with Apple or Microsoft — that requires paid certificates this project hasn't purchased. So your OS flags it as coming from an unidentified developer. It does not mean anything harmful was found. Allow it once using the steps below and it runs normally from then on.

(If you want to, you can also check that your download wasn't tampered with. Not required.)

macOS — System Settings → "Open Anyway"

Homebrew (recommended)

brew install --cask whsoul/tap/kaflow-search && open -a "Kaflow Search"

This installs the build for your Mac and attempts the first launch. If Homebrew reports that /Applications/Kaflow Search.app already exists, quit Kaflow Search and move the previous manually installed app out of Applications, then run the command again. Your settings and local indexes remain in ~/.kaflow; moving the app itself does not remove them.

When macOS shows the message in step 2 below, click OK, then continue with step 3.

Manual DMG installation

  1. Open the .dmg and drag Kaflow Search into your Applications folder.

    💡 Don't launch it from inside the DMG. Move it first, then run it from Applications — otherwise you'll go through the approval twice. (Approval applies to one file, so approving the copy inside the DMG doesn't carry over to the one you copied out.)

  2. Launch it from Applications. When this appears, click OK:

    "Kaflow Search" can't be opened because Apple cannot check it for malicious software.

  3. Go to System Settings → Privacy & Security, and under Security click [Open Anyway]. Confirm once more in the dialog that follows.

    "Kaflow Search" was blocked from use because it is not from an identified developer.

    (The button only appears right after step 2 was blocked. If you don't see it, launch the app again.)

Some setups ask twice — once after installing, once on first launch. Nothing is wrong; just approve it the same way again. It won't ask after that.


To skip all of it, run this once in Terminal instead, then open the app normally:

xattr -dr com.apple.quarantine "/Applications/Kaflow Search.app"

(Once per installed version. Exact wording varies by macOS version.)

Windows — Continue past the "Unknown publisher" warning

Windows may show an Unknown publisher or Microsoft Defender SmartScreen warning during installation. As on macOS, this appears because Kaflow Search does not yet use a paid code-signing certificate; it does not mean Windows found anything harmful. Select More info → Run anyway to continue.

Starting with v0.1.3, the Microsoft Visual C++ runtime is linked into the app, so there is nothing extra to install. If you are still using the v0.1.2 Windows Preview and it closes immediately after launch, update to the latest release. As a fallback for that Preview build, install the Microsoft Visual C++ Redistributable (x64). The old runtime issue may appear in Windows Event Viewer as MSVCP140.dll, VCRUNTIME140.dll, or exception code 0xc0000005.

If it still does not start, open a bug report and include your Windows version and any Event Viewer error shown for Kaflow Search.

Getting started

StepNote
1Connect to a clusterPasswords are never saved — entered per connection
2Pick topics to indexDeserializer and cleanup policy are auto-suggested from a sample
3IndexOne pass over the topic. The app stays usable while it runs
4SearchKeyword, or conditions across keys / headers / JSON fields
Connecting to AWS MSK (IAM auth)

MSK isn't a separate menu — it lives inside the SASL mechanism list. On the connect screen:

  1. Security protocolSASL_SSL (MSK requires TLS; SASL_PLAINTEXT will not connect)
  2. SASL mechanismAWS MSK IAM (IAM access key)
  3. If you have ~/.aws/credentials, a profile picker appears — pick one and the access key and region are filled in for you. (With a single profile it applies directly, no picker.)
  4. Otherwise, or for SSO-only profiles, enter them yourself: AWS Access Key ID / AWS Secret Access Key / Region (e.g. ap-northeast-2 — where your MSK cluster lives)

Keys are not stored — they're used for that connection only, and re-entered or re-loaded from the profile next time.

If it fails with Access denied, the failure dialog offers a minimum-privilege IAM policy JSON you can copy. MSK returns the same message for a mistyped key, a wrong region, missing permissions and a permission boundary alike — so the app lists what to check instead of guessing the cause.


Details

Why a local index

A large Kafka cluster does not mean copying the whole cluster onto your computer. You choose the topics that matter, and Kaflow keeps their local search indexes within a configured storage budget.

The problemKafka is a log, not a database — there's no way to look up "the message with this order ID"
What Kaflow doesReads each topic once, builds a local index. Every later search hits the index, not Kafka
Selective indexingYou choose which topics to index. Kaflow does not automatically index every topic in the cluster
Bounded local storageA configurable storage budget and cleanup policies keep local indexes from growing without bound
ScopeSearches what is still in your topics — it mirrors Kafka retention, it is not an archive
Management toolsNo overlap, no conflict. Keep yours for operating the cluster; use Kaflow to find things

Data and safety

Messages, indexes, queriesProcessed on your machine. Never uploaded to any Kaflow server
Passwords, tokens, secret keysNever stored. Held in memory for the session, re-entered on each connection
Stored locally (~/.kaflow/)Non-secret metadata only — protocol, mechanism, username, certificate paths
Writes to your clusterNone. Read-only: Metadata, ApiVersions, DescribeConfigs, DescribeTopicPartitions, Fetch, ListOffsets. No Produce, no admin calls — it cannot alter topics, consumer groups or ACLs
Read load on your clusterOnly while indexing and syncing. Searching, exploring and exporting all run off the local index, so repeating them sends nothing to the cluster (opening a message's raw payload is the exception)
Sent to KaflowOn startup, and again every few hours while the app is open, for version support and announcements: random instance ID · hashed machine ID · app version · OS/arch · UI language. Nothing about your Kafka setup or messages
Diagnostic reportsGenerated locally, sent only if you choose to

Full detail, including retention: PRIVACY.md

Verifying your download wasn't tampered with (optional)

This is not required to install or run the app. Skip it and everything works fine. It's here for people who want the extra assurance.

Every release ships a SHA256SUMS file, and the release notes list the same SHA-256 values. Computing the fingerprint of your download and comparing it tells you the file wasn't corrupted in transit or swapped out along the way.

# macOS — put SHA256SUMS in the same folder and check everything at once
shasum -a 256 -c SHA256SUMS
# Windows — compute the value and compare it against the release notes by eye
Get-FileHash <file> -Algorithm SHA256

If a value doesn't match, don't use that file — delete it and download again.

⚠️ Know the limit. The file and its checksum live on the same page, so if the release page itself were compromised, both would change together and this check wouldn't catch it. Guarding against that is what developer verification (code signing) does — which this project doesn't have yet.

Before you connect
  • Confirm you're authorized to read the cluster and topics
  • Follow your organization's security and data-handling policy
  • Local indexes and exports are unencrypted on disk — store accordingly
  • Prefer a least-privilege Kafka account
  • Strip credentials and message contents before sharing logs

Supported environments

Security protocolPLAINTEXT · SSL · SASL_PLAINTEXT · SASL_SSL
SASL mechanismPLAIN · SCRAM-SHA-256 · SCRAM-SHA-512 · OAUTHBEARER · AWS MSK IAM
CertificatesPEM · PKCS#12 (.p12 / .pfx)
Schema RegistryConfluent (Avro, Protobuf, incl. schema references)
Kafka versionsTarget 2.4 – 4.x · verified: Kafka 2.4.x (local), AWS MSK with IAM

Other versions and managed services are expected to work but aren't verified yet — tell us how it went. Connection success also depends on broker config, network policy and provider-specific auth, not the version alone.

What you can search
TargetExample
Message keyK.orderId — plain value or nested JSON
PayloadP.customer.email — plain text or nested JSON
HeaderH.trace-id
ArraysP.items[*].sku — flattened to one path
Condition
Matchexact · prefix · lexical range within a field
BooleanAND / OR / NOT, with minimum-match count for OR
Filterstimestamp range · partition / offset range
Wordsword-level matching on fields you mark as tokenized
Exploring
Chartstime-series with drill-down into matching messages
Treesoffset tree · date tree · partition placement · latest messages
DetailJSON highlighting, copy
ExportJSONL / CSV / TSV × gzip / zstd — runs off the local index, works offline
Resource limits

Limits on disk, on scale, and on how indexes are kept and cleaned up are set so that Kaflow stays well-behaved on your machine. The app shows the ones in force under Settings, and enforces exactly what it shows.

Indexing time and disk use vary with message count, size, partitions, indexed fields and disk speed. No fixed performance is guaranteed.

Project status

Version 0.1.3 — open beta. Usable for daily work.

Known limitations

One topic at a timeMulti-topic search is the next feature
Text-based rangesNumeric/date range search (amount 50–100) not available yet
Manual updatesNo auto-update — new versions are installed by hand
UnsignedSee Install

⚠️ No results means nothing matched in your local index — not that the message never existed in Kafka. It may predate your index, or fall outside the fields and range you indexed.

Feedback

Report a bug · Connection problem · All issues

Each form asks only for what turns out to settle the question. For connection problems that is the service, the Kafka version, how you authenticate, and whether other clients reach the cluster from the same machine.

🔒 Never put passwords, tokens, private keys, certificates or real message contents in a public issue.

Supporting the project

Built and maintained independently. Support is voluntary — not a purchase, subscription or commitment to any feature or timeline. Free usage terms are the same either way.

What support would go toward: code-signing certificates for macOS and Windows — which is why the install warnings are still there. Beyond that, testing across more platforms and Kafka versions, and release infrastructure.

This repository

Official public repository — releases, documentation, issues, roadmap.

Source-available, not open sourceThe frontend source and the search engine implementation are not here
What is herePublic API contracts · mock engine · desktop shell · a runnable demo build
WhyTransparency and evaluation. No open-source license applies unless a file says so — see LICENSE
ContributionsCode contributions aren't accepted. Issues and feedback very much are

LegalLICENSE (repository terms) · EULA (한국어) · Privacy (한국어) · Third-party notices

Proprietary software, currently free for personal use and internal business use under the EULA. Reselling, modifying, reverse-engineering, redistributing or bundling into another product is restricted. Future features or services may carry different terms, announced before they apply.

The app's interface is available in English · 한국어 · 日本語 · 中文.

Trademarks — Apache Kafka and Kafka are trademarks of the Apache Software Foundation. Kaflow Search is not affiliated with, endorsed by or sponsored by the ASF. Other names and marks belong to their respective owners.


Kaflow Search — a desktop search engine for your Kafka messages.

Download · Website · Issues · Privacy

Copyright © 2026 Whsoul Tools. Kaflow Search is a product of Whsoul Tools.

Contributors

whsoul

123 commits

Languages

Rust

68.2%

HTML

21.3%

JavaScript

6.2%

CSS

4.2%