924 karma · joined March 2, 2015
https://mrkaran.dev
I took this a few steps further beyond the web UI's AI assistant. There's an MCP server[2] so any AI assistant (Claude Desktop, Cursor, etc.) can discover your log sources, introspect schemas, and query directly. And a Rust CLI[3] with syntax highlighting and `--output jsonl` for piping — which means you can write a skill[4] that teaches the agent to triage incidents by running `logchef query` and `logchef sql` in a structured investigation workflow (count → group → sample → pivot on trace_id).
The interesting bit is this ends up very similar to what OP describes — an agent that iteratively queries logs to narrow down root cause — except it's composable pieces you self-host rather than an integrated product.
[1] https://github.com/mr-karan/logchef
[2] https://github.com/mr-karan/logchef-mcp
[3] https://logchef.app/integration/cli/
[4] https://github.com/mr-karan/logchef/tree/main/.agents/skills...
Personal blog I update every now and then. Mostly infrastructure, networking, and observability stuff.
It replaced both Filebeat and Logstash for us with a single binary that actually has sane resource usage (no more JVM nightmares). VRL turned out to be way more powerful than we could imagine - we do all our log parsing, metadata enrichment, and routing to different ClickHouse tables in one place. The agent/aggregator topology with disk buffering is pretty dope.
Genuinely one of my favorite pieces of infra software. Good luck with Tero.
The structure is dead simple: `machines/<hostname>/stacks/<service>/` with a `config.sh` per machine defining SSH settings and optional pre/post deploy hooks. One command syncs files and runs `docker compose up -d`.
I could see Claude Code being useful for debugging compose files or generating new stack configs, but having the deployment itself be a single `./deploy.sh homeserver media` keeps the feedback loop tight and auditable.
The core idea is to leverage ClickHouse's incredible columnar performance for log analytics while providing a schema-agnostic interface that works with any log table structure. It supports both simple search syntax for quick queries and full ClickHouse SQL for complex analytics. Also it has proper RBAC: Team-based access controls for multi-tenant environments.
Off late I have also added some AI features:
- AI-powered SQL generation - write queries in natural language
- MCP (Model Context Protocol) server integration for AI assistants to query your logs
It's open source (AGPLv3) and deliberately doesn't handle log collection - instead it integrates with existing tools like Vector, Fluentd, or OpenTelemetry Collector. The roadmap includes REST APIs, client libraries, visualizations, and alerting.Built with Go + Vue.js + TypeScript. Currently handles millions of log entries daily in production environments at my org. The deployment is just a single binary deployment with a SQLite DB.
Would love feedback from the community! GitHub: https://github.com/mr-karan/logchef
Our previous pipeline was LaTeX-based (first pdflatex, then lualatex), but we were constantly fighting cryptic memory errors on large documents and huge Docker image sizes that slowed down boot times of our ephemeral workers.
Switching to Typst was a massive win for us. The single static binary resulted in tiny images and faster boot times. More importantly, the performance gains were huge. Overall compile times were ~3–4× faster than LaTeX. On really large documents (2000+ pages, mostly tables), Typst compiles in ~1 minute vs. ~18 minutes with lualatex.
Beyond performance, the better developer experience and good error messages was a nice bonus too.
We wrote a detailed post about the entire architecture - from the job orchestration with Nomad to the S3 optimizations and the Typst migration in particular. If you're curious, you can read it here: https://zerodha.tech/blog/1-5-million-pdfs-in-25-minutes
It's an open-source (AGPLv3), purpose-built log analytics UI specifically for ClickHouse. I've been using ClickHouse for logs and love its power, but found the existing UIs either too heavy, too focused on ingestion (which we already have covered with tools like Vector/Promtail/Fluentbit/Logstash etc), or not ClickHouse-native enough.
Logchef aims to be a lightweight, powerful log explorer that sits on top of your existing ClickHouse setup.
Key things:
- Schema-agnostic: Works with your existing ClickHouse log tables. No need to change how you store things.
- Dual Query Modes: Simple search syntax (e.g., level=error service=api) for quick looks, and full SQL for complex analysis when you need to dig deep.
- Lightweight & Focused: Single binary, easy to deploy. It doesn't do ingestion, letting you use best-of-breed tools for that.
- Team-centric: Built with multi-tenancy for teams and access controls for different log sources from the get-go.
I've got a demo running at https://demo.logchef.app if you'd like to try it out. It's still evolving, so feedback (especially from other ClickHouse users) would be super valuable!
Wrote an announcement post with a bit more detail: https://mrkaran.dev/posts/announcing-logchef/
Once you add the source, you can "connect" the source to a team. Only the members of the team will be allowed to query this source. So you can have multiple teams and add users accordingly. A source can be added to multiple teams as well.
Hope that answers your question!
BTW, as I was using it today, I was quite surprised to see `@` working now. Turns out in 0.27.5 they added this feature: https://github.com/anthropics/claude-code/blob/main/CHANGELO... :)
Similarly, I do miss an —add command line flag to manual specify the context (files) during the session. Right now I pretty much end up copy pasting the relative paths from VSCode and supply to Claude. Aider has much better semantics for such stuff.
The intention is often to prevent companies from building proprietary services on top of open source software and I feel AGPL 3.0 is a sensible choice here.
Aside: I built my own expense tracker [1] as well to categorise expenses using LLMs as I needed a quick way to log the entries. I’ve been meaning to export these to Actual budget for a detailed analysis but haven’t done that yet.
> In addition, we have given out many sizeable grants to FOSS projects and organisations in India. While funding projects outside India involves significant paperwork and operational overhead, we have reached out to several small and large projects that we use at work and have managed to pay them. This highly ad hoc approach is something that has increasingly bugged me though.
1. Regarding the validation, this error seems to be related to the provenance check mechanism in the spec. This is to prove ownership of that project/domain. The wellKnown field is designed to handle cases where the webpageUrl doesn't match the manifest URL.
2. Will definitely be passing the feedback to our team and evaluate this further!
We’ve written more about this large-scale PDF generation stack in our blog here: https://zerodha.tech/blog/1-5-million-pdfs-in-25-minutes
Minor nit: 10MB really isn’t that “small” for a CLI. I’d looked at your go.mod and seems like the most of dependency bloat might be coming from cobra or viper as it has in-tree plugins. You can check out an alternative like https://github.com/knadh/koanf which would decrease the binary size, I’m sure.
Short answer: Why not :)
Will release soon