Why --- Previously researcher had a uniform response schema to pick next tool, scratchpad, query and tool. This didn't allow choosing different arguments for the different tools being called. And the tool call, result format passed by khoj was custom and static across all LLMs. Passing the tools and their schemas directly to llm when picking next tool allows passing multiple, tool specific arguments for llm to select. For example, model can choose webpage urls to read or image gen aspect ratio (apart from tool query) to pass to the specific tool. Using the LLM tool calling paradigm allows model to see tool call, tool result in a format that it understands best. Using standard tool calling paradigm also allows for incorporating community builts tools more easily via MCP servers, clients tools, native llm api tools etc. What --- - Return ResponseWithThought from completion_with_backoff ai model provider methods - Show reasoning model thoughts in research mode train of thought. For non-reasoning models do not show researcher train of thought. As non-reasoning models don't (by default) think before selecing tool. Showing tool call is lame and resembles tool's action shown in next step. - Store tool calls in standardized format. - Specify tool schemas in tool for research llm definitions as well. - Transform tool calls, tool results to standardized form for use within khoj. Manage the following tool call, result transformations: - Model provider tool_call -> standardized tool call - Standardized tool call, result -> model specific tool call, result - Make researcher choose webpages urls to read as well for the webpage tool. Previously it would just decide the query but let the webpage reader infer the query url(s). But researcher has better context on which webpages it wants to have read to answer their query. This should eliminate the webpage reader deciding urls to read step and speed up webpage read tool use. Handle unset response thoughts. Useful when retry on failed request Previously resulted in unbound local variable response_thoughts error
🎁 New
- Start any message with
/researchto try out the experimental research mode with Khoj. - Anyone can now create custom agents with tunable personality, tools and knowledge bases.
- Read about Khoj's excellent performance on modern retrieval and reasoning benchmarks.
Overview
Khoj is a personal AI app to extend your capabilities. It smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI.
- Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini, deepseek).
- Get answers from the internet and your docs (including image, pdf, markdown, org-mode, word, notion files).
- Access it from your Browser, Obsidian, Emacs, Desktop, Phone or Whatsapp.
- Create agents with custom knowledge, persona, chat model and tools to take on any role.
- Automate away repetitive research. Get personal newsletters and smart notifications delivered to your inbox.
- Find relevant docs quickly and easily using our advanced semantic search.
- Generate images, talk out loud, play your messages.
- Khoj is open-source, self-hostable. Always.
- Run it privately on your computer or try it on our cloud app.
See it in action
Go to https://app.khoj.dev to see Khoj live.
Full feature list
You can see the full feature list here.
Self-Host
To get started with self-hosting Khoj, read the docs.
Enterprise
Khoj is available as a cloud service, on-premises, or as a hybrid solution. To learn more about Khoj Enterprise, visit our website.
Frequently Asked Questions (FAQ)
Q: Can I use Khoj without self-hosting?
Yes! You can use Khoj right away at https://app.khoj.dev — no setup required.
Q: What kinds of documents can Khoj read?
Khoj supports a wide variety: PDFs, Markdown, Notion, Word docs, org-mode files, and more.
Q: How can I make my own agent?
Check out this blog post for a step-by-step guide to custom agents. For more questions, head over to our Discord!
Contributors
Cheers to our awesome contributors! 🎉
Made with contrib.rocks.
Interested in Contributing?
Khoj is open source. It is sustained by the community and we’d love for you to join it! Whether you’re a coder, designer, writer, or enthusiast, there’s a place for you.
Why Contribute?
- Make an Impact: Help build, test and improve a tool used by thousands to boost productivity.
- Learn & Grow: Work on cutting-edge AI, LLMs, and semantic search technologies.
You can help us build new features, improve the project documentation, report issues and fix bugs. If you're a developer, please see our Contributing Guidelines and check out good first issues to work on.

