grep → egrep → awk → jq → tailAnother condition. Another pipe. Another run.

FLIK / INTERACTIVE TERMINAL LOG ANALYZER

Interactive terminal
log analysis.

Stop rebuilding the same log pipeline. Open your logs and make Kubernetes JSON readable. Stack filters until you find the failure. Press x to step back and keep investigating.

Kubernetes / CRI · Nginx · Apache · JSON / NDJSON

Local files & live streams · macOS & Linux · MIT licensed

KUBERNETES JSON → STACKED FILTERS → UNDO

Actual Flik recording. Synthetic logs. Every key press changes the real interface.

Keep the investigation.
Change the filter.

Stay on the same file, keep the surrounding events and refine your view one condition at a time.

See the commands →

REPEATABLE INVESTIGATION

Five requests.
Two failures. One answer.

The synthetic Nginx sample contains one 502 and one 503 among five requests. Filter status:5xx, press H, and the 10:00 UTC bucket contains exactly two matching requests.

TRY THE SAME INPUT

Inspect the file. Check the count.

Download the five-request sample ↓
flik access.log

3 → status:5xx → Enter → H

Follow the verified example →

Synthetic data, not a throughput benchmark. Frequency reports scan the full indexed source; the S dashboard uses a sample of up to 5,000 lines.

SUPPORTED LOG FORMATS

Built for the logs you investigate.

Automatic format detection, structured fields and a raw-text fallback.

CONTAINERS

Kubernetes / CRI

CRI-O-style timestamps, stdout/stderr streams and embedded JSON messages. Pipe kubectl logs into Flik.

WEB SERVERS

Nginx

Common / Combined access logs and Nginx error logs. Inspect requests, HTTP status codes and error severity.

STRUCTURED DATA

JSON / NDJSON

Discover fields, select columns, filter values and inspect nested objects. Open application logs directly.

SYSTEMS

Apache, Syslog & text

Apache access and error formats, traditional Syslog and plain-text logs with search and context.

Custom access-log layouts may use raw-text mode. Timestamp reports include lines with recognized timestamps; missing timestamps are reported separately.

INVESTIGATION FEATURES

From a matching line
to an explainable incident.

Keep the filters, surrounding events and measurements in one keyboard-driven workspace.

01 / SEARCH & FILTER

Narrow the event stream.

Stack include/exclude rules, use regular expressions and combine conditions with AND, OR and NOT. Complete fields and observed values.

(level:error OR status>=500) AND service:payment
02 / FIELD INSPECTION

Read the fields that matter.

Switch between lines and columns. Select JSON fields, inspect distinct values and frequencies, and filter from a selected value.

flik --table --fields timestamp,level,message app.jsonl
03 / ERROR CONTEXT

Keep the surrounding events.

Smart find includes preceding and following lines. Context stays in file order, without duplicates, and is visually distinguished from matches.

//3,2:error
04 / ADAPTIVE STATISTICS

Measure what the log contains.

HTTP status codes for access logs. ERROR, NOTICE and other detected levels for error logs. Inspect frequent IPs, endpoints and errors.

S → select a value → Enter
05 / FREQUENCY & CHANGE

Find when errors recur.

Count the active filter by minute, hour or day. Compare two equal time windows or two files to identify new and disappearing patterns.

histogram hour · compare files
06 / MULTI-FILE WORKSPACE

Follow requests across files.

Open two independent panes, merge matching events chronologically and filter by a correlation ID. Save sessions and export incident context.

trace req-demo-42
Analysis scope is visible.The S dashboard samples up to 5,000 lines. Frequency and comparison reports scan the full indexed source in the background. Context-only lines are excluded from occurrence counts. Times are shown in UTC.

PRODUCT RECORDINGS

Watch the keys. See the result.

Real terminal sessions with typing, navigation and on-screen key prompts. Follow the actions, then try them on the sample logs.

FLIK / TERMINAL RECORDINGflik · Kubernetes JSONSYNTHETIC DATA
01

Read the JSON. Narrow the failure. Undo one step.

Press w to expand embedded Kubernetes JSON. Add service:payment, add level:error, then press x to remove only the last filter.

w → 3 → service:payment → 3 → level:error → x

The recording opens compact CRI logs, beautifies the embedded JSON, stacks two include rules and removes the newest one. The first rule stays active.

Download recording ↓

SELF-HOSTED RECORDINGS · SYNTHETIC LOGS · ENGLISH CAPTIONS

PRACTICAL EXAMPLES

Start with a real task.

Shell commands open the data. Search queries run inside Flik. Investigation commands run in the Ctrl+K prompt.

YOUR EXISTING CLI WORKFLOW

An interactive alternative to repeated jq, grep and tail inspection.

Use Flik for log filtering, field selection, surrounding context and live following. Keep jq for JSON transformations and scripted data processing.

JSON / jqInspect selected fields and filter a service

Move repeated jq field selection and log filtering into an interactive table. Adjust the columns and filters without rerunning the pipeline.

TYPICAL jq FIELD INSPECTION
jq '{timestamp, service, message}' app.jsonl
OPEN AN INTERACTIVE FLIK TABLE
flik --table --fields timestamp,service,message app.jsonl

3 Add the include filter service:payment. Use 6 to change fields and v to inspect a field’s values.

Flik covers interactive JSON log inspection. Keep jq for JSON transformations, object construction and scripted pipelines; Flik does not execute jq expressions.

Download synthetic JSON logs ↓
KUBERNETESInspect a live pod log stream

Pipe a Kubernetes log stream into Flik, then add filters and choose fields while new events arrive.

SHELL
kubectl logs -f deployment/demo-api | flik -

/ Search for timeout. Use Tab in the search prompt to complete fields and values, or w to expand embedded JSON when available.

Saved CRI-style log files are detected automatically. kubectl output is parsed according to the emitted application format.

Download a synthetic CRI log ↓
NGINXInvestigate failed requests and server errors
SHELL — ACCESS LOG
flik access.log

3 Apply status:5xx, then H for hourly counts. Use S for the HTTP status breakdown and frequent endpoints.

For an Nginx error log, open flik nginx-error.log. The statistics dashboard shows detected severity levels when no HTTP statuses are present.

Access log sample ↓Error log sample ↓
ERROR CONTEXTSee what happened before an error
TYPE IN THE MAIN LOG VIEW, THEN ENTER
//3,2:error

Shows each matching error, three preceding lines and two following lines. //error uses one preceding line. Context-only lines appear in gray.

Ctrl+G opens a larger context view around the selected result. Inside that view, n / p move between matches and Esc returns to the file.

Download synthetic events ↓
FREQUENCYCount a filtered error over time

First filter the error with /timeout, then press H for hourly counts. For another interval, open Ctrl+K and enter:

INVESTIGATION COMMAND
histogram minute

Also accepts histogram hour and histogram day. Counts use the active filters and exclude context-only lines. Results are UTC snapshots; close and rerun to refresh.

TRACES & CHANGEFollow a request or compare incident windows
SHELL — OPEN TWO FILES
flik api.log worker.log

In Ctrl+K, enter trace req-demo-42 to filter both sources and merge matching events chronologically. Existing filters remain active.

INVESTIGATION — 15 MINUTES BEFORE / AFTER
compare 2026-01-15T10:00:00Z 15

Use a timestamp from your log. compare files compares the two open sources. Changes describe observed patterns, not a proven cause.

KEYBOARD REFERENCE

Keyboard first.
Undo included.

Shortcuts are case-sensitive and apply to the main log view unless noted. Press 1 or ? for the in-app guide.

Navigate & display

Navigation and display shortcuts
KeyAction
↑ / ↓ / k / jMove through log lines
Space / f / PgDnPage down
b / PgUpPage up
g / HomeGo to the beginning
G / EndGo to the end / resume following
← / →Scroll horizontally
Tab / 4 / F4Switch line / column view
5 / t / F5Toggle live follow (tail)
6 / F6Choose visible fields
RSelect fields or a column range
wExpand / collapse embedded JSON
IToggle newest-first order
c / nToggle colors / line numbers
TSwitch color theme
rReload the file

Search & filter

Search and filter shortcuts
KeyAction
/ / 7 / F7Open quick search
//errorSmart find with the preceding line
//3,2:errorSmart find with 3 before / 2 after
3 / + / i / F3Add an include filter
8 / - / e / F8Add an exclude filter
Ctrl+FManage stacked filter rules
xUndo the last filter
XClear filters and restore fields
Tab in searchComplete fields / observed values
Ctrl+Space in a filterComplete fields / observed values
Tab in a filterToggle include / exclude mode
F2 / Ctrl+R in a filterToggle regular expression mode
F3 / Ctrl+C in a filterToggle case-sensitive matching
Enter / Esc in promptsApply / cancel

Analyze & investigate

Analysis and investigation shortcuts
KeyAction
S / sStatistics dashboard
HFiltered occurrences per hour
P / pGroup similar log patterns
vInspect distinct field values
Ctrl+GContext around the selected event
Ctrl+TEnter a time range
Ctrl+LMerge matching events from both files
CDiscover identifiers on a line
Ctrl+RTrace an identifier across files
D / dSelect two lines for comparison
BToggle bookmark on the current line
'Jump to the next bookmark
Ctrl+KOpen investigation commands

Files, sessions & exports

Files sessions and export shortcuts
KeyAction
Ctrl+OOpen a file in the active pane
Ctrl+NOpen a file in the other pane
Ctrl+← / Ctrl+→Focus the left / right pane
F12 / Ctrl+]Switch panes
Ctrl+WClose the active pane
Ctrl+PSave the workspace session
Ctrl+SExport raw lines, JSON Lines or CSV
Ctrl+EExport incident context with redaction
yCopy the selected line
MToggle terminal mouse capture
2 / o / F2Detect the log format again
1 / h / ? / F1Open the help guide
9 / m / Esc / F9Open the menu
Q / q twice / F10Quit Flik

Investigation commands Open with Ctrl+K

Investigation command examples
CommandPurpose
context 20Show 20 lines before and after the selected result
time START..END / jump TIMEFilter a time range or jump to a timestamp (RFC3339)
around 5 / untimeWindow ±5 minutes around an event / remove the time filter
histogram minute|hour|dayCount matching events over time
compare TIME 15 / compare filesCompare equal time windows or the two open files
merge / trace req-demo-42Merge the filtered chronology / follow a request
save session.json / load session.jsonSave or restore files, filters, fields and positions
redact email,customer_idAdd extra field names to the built-in redaction keys
export incident.jsonlExport events with sources, original lines and context

Some terminals reserve Ctrl combinations; menu entries and function keys provide alternatives. Redaction is based on known keys and patterns; review incident exports before sharing.

PRACTICAL GUIDES

Find the answer.
Keep the evidence.

Complete investigations with sample logs, exact key sequences and expected results.

Nginx / error frequency

Count Nginx errors per hour

Filter failed Nginx requests, count occurrences by hour and distinguish HTTP statuses from error-log severity.

Browse all log analysis guides →

INSTALLATION

Download Flik.

GitHub releases provide ready-to-run archives for macOS and Linux. No Rust installation is needed to use Flik. Browse published GitHub releases →

Ready-to-run releases for macOS and Linux
CHOOSE YOUR PLATFORMRELEASES
Binary available with the first release

macOS · Apple Silicon · .tar.gz

AFTER DOWNLOADING
tar -xzf flik-vVERSION-aarch64-apple-darwin.tar.gz ./flik demo.log

Each release includes SHA-256 checksums to verify your downloads.

What about automatic installation?

The installation script will be available with the first public release.

macOS: binaries are currently unsigned. Windows: no native binary announced. Files and streams stay local.