508b2176b7
- Remove the need to split by magic string in emacs and chat interfaces - Move compiling references into string as context for GPT to GPT layer - Update setup in tests to use new style of setting references - Name first argument to converse as more appropriate "references" |
||
---|---|---|
.. | ||
tests | ||
khoj.el | ||
README.org |
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
Table of Contents
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
Setup
Make sure python (version 3.10 or lower) and pip are installed on your machine
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 withpip install --pre khoj-assistant
- Else use
:pin melpa-stable
to install khoj.el in above snippet if khoj was installed withpip 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
- Hit
C-c s s
(orM-x khoj RET s
) to open khoj search - 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.
- Move cursor to the org-mode entry, markdown section or text paragraph you want to find similar entries for
- Hit
C-c s f
(orM-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
- This calls
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 menuContent Type
specifies the content to performSearch
,Update
orFind Similar
actions on - Hit
n
twice and then enter number of results you want to seeResults Count
is used by theSearch
andFind Similar
actions - Hit
-f u
toforce
update the khoj content index TheForce Update
switch is only used by theUpdate
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
onkhoj
to mark it for upgrade - Press
x
to execute the marked actions
- Run
-
Method 2
- Run
M-x package-refresh-content
- Run
M-x package-reinstall khoj
- Run
-
-
For
khoj.el
from Straight- Run
M-x straight-pull-package khoj
- Run