Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

Khoj’s AGPL-3.0 personal AI app that answers from the web and from your own notes and documents. The setup notes cover running it with Docker or pip, picking a chat model, and using it from Obsidian, Emacs, the Desktop app, the web and WhatsApp.
Khoj is an open-source project on GitHub in the Productivity category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.
mkdir ~/.khoj && cd ~/.khoj wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
Khoj is a personal AI app that answers from your own documents and from the web. Its README says it “smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI”. You run the server yourself with Docker or pip, then reach it from a browser, Obsidian, Emacs, a Desktop companion app or your phone. A WhatsApp bot runs on Khoj Cloud. The README also names Khoj Cloud and an Enterprise option. These notes cover the self-hosted route.
People with a pile of notes, PDFs and documents who want to ask questions of them in plain language, and who would rather run the app on their own machine. Obsidian and Emacs users get plugins that sync their notes. Skip it if you want a one-click install. The self-hosted route needs Docker or Python, a chat model and a few settings in docker-compose.yml or at pip’s first run.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Note taking | Obsidian users | Sync a vault with the plugin and ask questions of it in chat | An Obsidian user installs the plugin, clicks Force Sync and asks the page’s example, “When did I file my taxes last year?” |
| Org-mode and Emacs | People who keep notes in org files | Point the package at their org folders and search or chat from the keyboard | An Emacs user sets khoj-index-directories to an org-roam folder and presses C-c s s to search it in plain language. |
| Study and research | Students and researchers with PDFs | Upload documents and ask about them, or go deeper on a topic | A student drags a PDF into the chat window, asks about it, then tries /research to go deeper. |
| Small teams | Admins who host Khoj for others | Turn on logins and share an agent that has its own personality | An admin removes --anonymous-mode, sets up magic links and marks a custom agent public so every user on the server sees it. |
| Privacy-minded users | People who keep notes off hosted models | Run an offline model through Ollama | Someone runs ollama pull llama3.1, uncomments OPENAI_BASE_URL in docker-compose.yml and starts Khoj, as the Ollama page’s first-run steps say. |
Khoj is a server plus clients that talk to it. The docs name these.
| Route | Install | What the docs ask for |
|---|---|---|
| Docker on macOS | Docker Desktop with Compose, or Homebrew | The compose file from Khoj’s repository |
| Docker on Windows | WSL2, then Docker Desktop with the WSL2 backend | Commands run in a WSL2 terminal |
| Docker on Linux | Docker Desktop, or Docker Engine and Compose from your package manager | The same compose file |
| pip | python -m pip install 'khoj[local]' on macOS Intel or Linux, py -m pip install 'khoj[local]' in PowerShell on Windows | Python 3.10 to 3.12 per PyPI. Apple silicon and GPU builds set CMAKE_ARGS first |
Get it saves a zip of Mindket’s setup notes in your downloads folder, with a page for each route and client from Khoj’s docs. The main route is Docker.
| Need | Detail |
|---|---|
| Docker or Python | Docker with Compose, plus WSL2 on Windows, or Python with pip for the pip route |
| A chat model | A key for OpenAI, Anthropic or Gemini, an OpenAI compatible server such as Ollama, or an offline model |
| For offline models | At least 8 GB of RAM with 16 GB of VRAM recommended, and at least 5 GB of free disk |
| Secrets | KHOJ_ADMIN_PASSWORD and KHOJ_DJANGO_SECRET_KEY set to something secure |
| Free ports | 42110 for Khoj and 5900 for the computer container, both published by the compose file |
mkdir ~/.khoj && cd ~/.khoj wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
cd ~/.khoj docker-compose up
On Windows, the page runs these in a WSL2 terminal. The pip route uses two lines instead. The first installs the server on macOS Intel or Linux without a GPU (the Windows, Apple silicon and GPU lines are in setup/pip.md). The second starts it without a login, and the page gives no separate Windows form of it.
python -m pip install 'khoj[local]'
USE_EMBEDDED_DB="true" khoj --anonymous-mode
Open http://localhost:42110 and chat. Khoj answers from your notes when they are relevant, and from its general knowledge when they are not. Slash commands change that.
| Command | What it does |
|---|---|
| /notes | Answers only from your notes |
| /general | Answers only from general knowledge |
| /online | Adds online information to the prompt |
| /research | Goes deeper on a topic |
| /code | Generates and runs simple Python |
| /image | Generates an image |
To get notes in, drag files into the chat window, use the Desktop app, Obsidian or Emacs, or connect a Notion workspace. Query filters narrow a search or a chat. This one is the page’s own example.
what is the meaning of life? file:"1984.org" dt>="1984-01-01" dt<="1985-01-01" -"big" -"brother"
It limits the answer to entries from 1984.org that carry a 1984 date and leave out the words big and brother.
You keep notes in an Obsidian vault and run Khoj in Docker on the same computer. You install the Khoj plugin, set its Khoj URL to http://127.0.0.1:42110 and leave the API key empty, because the compose file starts the server in anonymous mode. You click Force Sync, then run Khoj: Chat from the command palette and type the page’s example question.
When did I file my taxes last year?
The Chat page says Khoj uses your question to find the most relevant notes. It passes them with the last few messages and some metadata to your chat model, and it shows the reference notes it used.
If you are new. Khoj has two halves. The server keeps an index of your documents and talks to an AI model. A client, such as the web page or Obsidian, is where you type. Start with the Docker route, one API key and a few files dragged into the chat window. Then open the admin panel at http://localhost:42110/server/admin. Use localhost there, not 127.0.0.1, to avoid a CSRF error.
For experts. Search runs in two passes. A bi-encoder turns chunks of your documents and your query into meaning vectors, and a slower cross-encoder re-ranks the closest ones. The SearchModelConfig page in the admin panel swaps the bi-encoder for a HuggingFace model, an OpenAI embedding model or any OpenAI compatible endpoint. A different bi-encoder means re-indexing every document.
ServerChatSettings sets the default chat model, and the same model runs every intermediate step, such as intent detection and web search. Web search defaults to the SearXNG container in the compose file. The file names four paid services as options for web search and page reading: Serper, Olostep, Firecrawl and Exa. Code runs in the Terrarium sandbox on your machine, for free, or in E2B’s remote sandbox when you set E2B_API_KEY. The Code Execution page says E2B is not free.
For several users, drop --anonymous-mode and set up magic links or Google sign-in. Google sign-in needs the khoj-cloud image or khoj[prod]. The Performance page says its search and indexing figures were last measured in 2022, so treat them as old.
Most of Khoj runs where you put it, and a few paths reach out.
This kit holds setup notes only. Mindket wrote them. Khoj itself, its server and its clients come from the Khoj team's repository: https://github.com/khoj-ai/khoj
These notes are not made or endorsed by the Khoj team. The README says Khoj is "a personal AI app to extend your capabilities" and that it "smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI." The documentation is at https://docs.khoj.dev
License: GNU Affero General Public License v3.0. GitHub lists it as AGPL-3.0, and the LICENSE file (https://github.com/khoj-ai/khoj/blob/master/LICENSE) is the standard version 3 text with the Free Software Foundation's notice and no named copyright holder. These notes do not explain the license: read it before you distribute or host a changed version.
The README and the docs also point to Khoj Cloud (https://app.khoj.dev) and an Enterprise option. These notes cover running Khoj yourself, with notes on its clients. Where a client page describes the cloud app, the note says so.
khoj package on PyPI or from the Docker image ghcr.io/khoj-ai/khoj:latest. It serves the web app at http://localhost:42110 and a settings area called the admin panel.khoj[local] package, which the page starts with USE_EMBEDDED_DB="true" set. See setup/pip.md.>=3.10,<3.13 for its Python version and the classifiers Python 3.10, 3.11 and 3.12. The setup page also points to llama-cpp-python's backend notes if the install hits a llama-cpp problem.Docker is the first route the page gives. From a terminal (on Windows, a WSL2 terminal), make a folder and download the compose file:
mkdir ~/.khoj && cd ~/.khoj
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
Set the passwords and a chat model key in the file as setup/docker.md describes, then start it:
cd ~/.khoj
docker-compose up
The page says setup is complete when the server log shows 🌖 Khoj is ready to engage. Then open http://localhost:42110. The page also says to restart your Khoj server after the first run so every setting is applied. Source: https://docs.khoj.dev/get-started/setup
To update the pip install, the Self-Host page gives:
pip install --upgrade khoj
For Docker, from the folder that holds your docker-compose.yml, the page gives:
cd ~/.khoj
docker-compose up --build
To remove the server, the page gives these for pip:
pip uninstall khoj
dropdb khoj -U postgres
For Docker, it gives the line below and says it removes the server containers, networks, images and volumes. Volumes hold the database, so this deletes your data.
docker-compose down --volumes
Clients are removed in the usual way for their app. Source: https://docs.khoj.dev/get-started/setup
The Telemetry page says self-hosted Khoj collects high level, anonymized metadata: the client (Web, Emacs, Obsidian), API usage (Search, Chat), the configured content types (Github, Org and so on) and request metadata such as host and referrer. It says no personal information and nothing from or about your content is sent, and it links to the code in the repository's src/telemetry folder. To opt out, set this environment variable to True in your shell or in docker-compose.yml. Source: https://docs.khoj.dev/miscellaneous/telemetry
KHOJ_TELEMETRY_DISABLE=True
The Self-Host page says your data never has to leave your private network, and that you can even use Khoj without an internet connection on a personal computer. The Chat page says a question is used to find the most relevant notes, and that those notes, the last few messages and some metadata go to the chat model you enabled along with the question. So with OpenAI, Anthropic or Gemini as the model, that text goes to the provider. With an offline or local model, it stays on your machine. This is Mindket's reading of those two pages. Sources: https://docs.khoj.dev/get-started/setup and https://docs.khoj.dev/features/chat
README.md 7 KB setup/agents-automations-and-code.md 6 KB setup/chat-models.md 8 KB setup/desktop-and-web.md 3 KB setup/docker.md 5 KB setup/documents-and-search.md 5 KB setup/emacs.md 4 KB setup/obsidian.md 2 KB setup/pip.md 4 KB setup/remote-and-login.md 6 KB setup/whatsapp.md 1 KB
Updated by Mindket to the current version of this kit.
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
NousResearch · Kit
Nous Research’s open source agent that you run in a terminal, in a desktop app or from a chat app. It keeps memory, writes skills from experience, runs schedul…
langgenius · Kit
LangGenius’s open-source platform for building LLM apps: visual workflows, RAG, model management and agents with a sandbox. Its difyctl tool and skill let Clau…
OpenHands · Kit
OpenHands’ open source, self-hosted control center for coding agents. One browser app runs the OpenHands agent, Claude Code, Codex, Gemini CLI, Pi or OpenCode…