Skip to main content

Emacs

Melpa Stable Badge Melpa Badge Build Badge Test Badge

Query your Second Brain from Emacs

Features​

  • Chat
    • Faster answers: Find answers quickly, from your private notes or the public internet
    • Assisted creativity: Smoothly weave across retrieving answers and generating content
    • Iterative discovery: Iteratively explore and re-discover your notes
  • Search
    • Natural: Advanced natural language understanding using Transformer based ML Models
    • Incremental: Incremental search for a fast, search-as-you-type experience

Interface​

SearchChat
khoj search on emacskhoj chat on emacs

Setup​

Self Hosting

If you are self-hosting the Khoj server modify the install steps below:

  • Set khoj-server-url to your Khoj server URL. By default, use http://127.0.0.1:42110.
  • Do not set khoj-api-key if your Khoj server runs in anonymous mode. For example, khoj --anonymous-mode
  1. Generate an API key on the Khoj Web App
  2. Add below snippet to your Emacs config file, usually at ~/.emacs.d/init.el

Direct Install​

Khoj will index your org-agenda files, by default

;; Install Khoj.el
M-x package-install khoj

; Set your Khoj API key
(setq khoj-api-key "YOUR_KHOJ_CLOUD_API_KEY")
(setq khoj-server-url "https://app.khoj.dev")

Minimal Install​

Khoj will index your org-agenda files, by default

;; Install Khoj client from MELPA Stable
(use-package khoj
:ensure t
:pin melpa-stable
:bind ("C-c s" . 'khoj)
:config (setq khoj-api-key "YOUR_KHOJ_CLOUD_API_KEY"
khoj-server-url "https://app.khoj.dev"))

Standard Install​

Configures the specified org files, directories to be indexed by Khoj

;; Install Khoj client from MELPA Stable
(use-package khoj
:ensure t
:pin melpa-stable
:bind ("C-c s" . 'khoj)
:config (setq khoj-api-key "YOUR_KHOJ_CLOUD_API_KEY"
khoj-server-url "https://app.khoj.dev"
khoj-index-directories '("~/docs/org-roam" "~/docs/notes")
khoj-index-files '("~/docs/todo.org" "~/docs/work.org")))

Straight.el​

Configures the specified org files, directories to be indexed by Khoj

;; Install Khoj client using Straight.el
(use-package khoj
:after org
:straight (khoj :type git :host github :repo "khoj-ai/khoj" :files (:defaults "src/interface/emacs/khoj.el"))
:bind ("C-c s" . 'khoj)
:config (setq khoj-api-key "YOUR_KHOJ_CLOUD_API_KEY"
khoj-server-url "https://app.khoj.dev"
khoj-org-directories '("~/docs/org-roam" "~/docs/notes")
khoj-org-files '("~/docs/todo.org" "~/docs/work.org")))

Use​

See Khoj Search for details

  1. Hit C-c s s (or M-x khoj RET s) to open khoj search
  2. Enter your query in natural language
    E.g. "What is the meaning of life?", "My life goals for 2023"

Chat​

See Khoj Chat for details

  1. Hit C-c s c (or M-x khoj RET c) to open khoj chat
  2. Ask questions in a natural, conversational style
    E.g. "When did I file my taxes last year?"

Find Similar Entries​

This feature finds entries similar to the one you are currently on.

  1. Move cursor to the org-mode entry, markdown section or text paragraph you want to find similar entries for
  2. Hit C-c s f (or M-x khoj RET f) to find similar entries

Advanced Usage​

  • Add query filters during search to narrow down results further e.g. What is the meaning of life? -"god" +"none" dt>"last week"

  • Use C-c C-o 2 to open the current result at cursor in its source org file

    • This calls M-x org-open-at-point on the current entry and opens the second link in the entry.
    • The second link is the entries org-id, if set, or the heading text. The first link is the line number of the entry in the source file. This link is less robust to file changes.
    • Note: If you have speed keys enabled, o 2 will also work

Khoj Menu​

Hit C-c s (or M-x khoj) to open the khoj menu above. Then:

  • Hit t until you preferred content type is selected in the khoj menu Content Type specifies the content to perform Search, Update or Find Similar actions on
  • Hit n twice and then enter number of results you want to see Results Count is used by the Search and Find Similar actions
  • Hit -f u to force update the khoj content index The Force Update switch is only used by the Update action

Upgrade​

Use your Emacs package manager to upgrade khoj.el

With MELPA​

  1. Run M-x package-refresh-content
  2. Run M-x package-reinstall khoj

With Straight.el​

  • Run M-x straight-pull-package khoj