khoj/src/interface/emacs
Debanjum Singh Solanky 2e13e15625 Ensure markdown entries in khoj.el results separated by empty line
- Update khoj.el test to reflect updated rendering logic
- Move ledger render function before image rendered to group functions
  with similar logic closer
2023-01-26 19:13:02 -03:00
..
tests Ensure markdown entries in khoj.el results separated by empty line 2023-01-26 19:13:02 -03:00
khoj.el Ensure markdown entries in khoj.el results separated by empty line 2023-01-26 19:13:02 -03:00
README.org Add badge for tests and update project subtitle in khoj.el Readme 2023-01-23 20:52:03 -03:00

Khoj Emacs 🦅

https://github.com/debanjum/khoj/actions/workflows/build_khoj_el.yml/badge.svg? https://github.com/debanjum/khoj/actions/workflows/test_khoj_el.yml/badge.svg?

Natural, Incremental Search for your Second Brain

Features

  • Natural: Advanced natural language understanding using Transformer based ML Models
  • Local: Your personal data stays local. All search, indexing is done on your machine*
  • Incremental: Incremental search for a fast, search-as-you-type experience

Interface

/docs/khoj_on_emacs.png

Setup

1. Setup Backend

  pip install khoj-assistant && khoj

2. Install Khoj.el

Using MELPA
  M-x package-install khoj

Add below snippet to your Emacs config file

  ;; Install Khoj Package from MELPA Stable
  (use-package khoj
    :ensure t
    :pin melpa-stable
    :bind ("C-c s" . 'khoj))

Note: Install khoj.el from MELPA (instead of MELPA Stable) if you installed the pre-release version of khoj

  • That is, use :pin melpa to install khoj.el in above snippet if khoj was installed with pip install --pre khoj-assistant
  • Else use :pin melpa-stable to install khoj.el in above snippet if khoj was installed with pip install khoj-assistant
  • This ensures both khoj.el and khoj app are from the same version (tagged or latest)
Using Straight.el

Add below snippet to your Emacs config file

  ;; Install Khoj Package using Straight.el
  (use-package khoj
    :after org
    :straight (khoj :type git :host github :repo "debanjum/khoj" :files (:defaults "src/interface/emacs/khoj.el"))
    :bind ("C-c s" . 'khoj))

Use

Search

  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"

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

/docs/khoj_emacs_menu.png 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

Upgrade Khoj Backend

  pip install --upgrade khoj-assistant

Upgrade Khoj.el

Use your Emacs package manager to upgrade khoj.el

  • For khoj.el from MELPA

    • Method 1

      • Run M-x package-list-packages to list all packages
      • Press U on khoj to mark it for upgrade
      • Press x to execute the marked actions
    • Method 2

      • Run M-x package-refresh-content
      • Run M-x package-reinstall khoj
  • For khoj.el from Straight

    • Run M-x straight-pull-package khoj