Khoj
Khoj helps an individual or small team search their own notes and ask questions across authorized documents, with retrieved passages available for review. A small seller can use it to prepare an internal quote from dated inventory and dispatch notes; a creator can find facts across project notes. The official company calls itself a tiny team, and package metadata credits Debanjum Singh Solanky and Saba Imran. Current headcount and controlling ownership are unknown. Khoj Cloud closed on April 15, 2026; the available route considered here is the open-source self-hosted application, which needs a database, retrieval models and a configured chat model.
On this page
What is Khoj?
Khoj is a specialist ai tool from Khoj for Enterprise knowledge search. Khoj helps an individual or small team search their own notes and ask questions across authorized documents, with retrieved passages available for review. A small seller can use it to prepare an internal quote from dated inventory and dispatch notes; a creator can find facts across project notes. The official company calls itself a tiny team, and package metadata credits Debanjum Singh Solanky and Saba Imran. Current headcount and controlling ownership are unknown. Khoj Cloud closed on April 15, 2026; the available route considered here is the open-source self-hosted application, which needs a database, retrieval models and a configured chat model. Its documented inputs are authorized notes or documents, a dated question, a working database/index, embedding and reranking models, and a configured local or hosted chat model. The recorded native pilot used three frozen synthetic Markdown files containing current inventory, current dispatch policy and a superseded archive; no real shop or personal corpus was connected. The expected deliverable is draft answers and inspectable native source references. The recorded tiny local-model configuration failed both original cases: the quote mixed obsolete prices and rules with incorrect quantities/arithmetic; the boundary answer used obsolete rules while correctly leaving arrival date and refund-processing deadline unknown. Three genuine references were returned for each answer, but reference presence did not establish correct grounding. No business action was executed.
Best suited for
- An individual or small team with authorized notes who can install and maintain the full local application, inspect source passages and distinguish current policy from historical documents.
- A pilot focused on a small-shop quote grounded in dated inventory and dispatch notes, using authorized notes or documents, a dated question, a working database/index, embedding and reranking models, and a configured local or hosted chat model. The recorded native pilot used three frozen synthetic Markdown files containing current inventory, current dispatch policy and a superseded archive; no real shop or personal corpus was connected.
Not suited for
- A workflow that depends on the following request without the stated input, review or permissions: /notes Today is 2026-10-02. Our archive says dispatch takes 1 business day and free shipping starts at USD 40.00. Are those the current rules? Explain the current dispatch and free-shipping policy using the dated original notes, clearly mark the archive as superseded, and quote your evidence. What exact date will an eligible domestic order arrive, and what is the refund-processing deadline? If the supplied notes do not establish either answer, state that each is unknown rather than inventing a promise. Do not search the web, make an order or send a message.
- Both original answer cases failed with the fixed tiny local model: three of eight conditions passed. Genuine source references did not prevent obsolete facts and incorrect arithmetic. These finite results do not establish quality for other models, tasks or configurations.
- An earlier primary attempt was interrupted by the external test controller after one native helper generation, before a final answer. Its history is retained separately. The primary was recovered once with unchanged inputs/model/settings; cumulative primary POSTs were two, boundary POSTs one, and the original index PUT one.
Capabilities, with sources
- 01Khoj provides document search and chat over personal knowledge, with additional agent and automation features documented separately.Official vendor statement · checked 2026-10-02Source ↗
- 02The company describes itself as a tiny team; its current headcount and controlling ownership are not established.Official vendor statement · checked 2026-10-02Source ↗
- 03The official 2024 founder account names Saba Imran and co-founder Debanjum; that account describes a historical team.Official vendor statement · checked 2026-10-02Source ↗
- 04The official Cloud service sunset notice states April 15, 2026 and directs continuing use to self-hosting.Official vendor statement · checked 2026-10-02Source ↗
- 05The current fixed source exposes native file indexing and POST chat responses with retrieved references.Official vendor statement · checked 2026-10-02Source ↗
- 06The native interface displays retrieved filenames and compiled source passages for inspection.Official vendor statement · checked 2026-10-02Source ↗
- 07The official Ollama guide documents a local OpenAI-compatible provider configuration.Official vendor statement · checked 2026-10-02Source ↗
Inputs and outputs
Inputs
Authorized notes or documents, a dated question, a working database/index, embedding and reranking models, and a configured local or hosted chat model. The recorded native pilot used three frozen synthetic Markdown files containing current inventory, current dispatch policy and a superseded archive; no real shop or personal corpus was connected.
Outputs
Draft answers and inspectable native source references. The recorded tiny local-model configuration failed both original cases: the quote mixed obsolete prices and rules with incorrect quantities/arithmetic; the boundary answer used obsolete rules while correctly leaving arrival date and refund-processing deadline unknown. Three genuine references were returned for each answer, but reference presence did not establish correct grounding. No business action was executed.
Enterprise Operations fields
| Knowledge connections | Not verifiedNot verified in the reviewed official material. |
|---|---|
| Agent configuration | Not verifiedNot verified in the reviewed official material. |
| Approval requirements | Not verifiedNot verified in the reviewed official material. |
| Execution visibility | Not verifiedNot verified in the reviewed official material. |
| Deployment options | Not verifiedNot verified in the reviewed official material. |
| Data handling | Not verifiedNot verified in the reviewed official material. |
Ecommerce & Retail fields
| Commerce platforms | Not verifiedNot verified in the reviewed official material. |
|---|---|
| Workflow stages | enterprise knowledge searchSource 1 |
| Integration by platform | Not verifiedNot verified in the reviewed official material. |
| Store data & permissions | Not verifiedNot verified in the reviewed official material. |
| Output formats | Not verifiedNot verified in the reviewed official material. |
| Batch processing | Not verifiedNot verified in the reviewed official material. |
| Localization languages | Not verifiedNot verified in the reviewed official material. |
| Approval requirements | Not verifiedNot verified in the reviewed official material. |
A practical Khoj workflow
The workflow and preparation text below retain the original Khoj evaluation plan written before resource setup. Statements about resources not yet being prepared describe that earlier planning stage. Completed native resources, actual outputs and results are recorded in the test section; the original cases and acceptance conditions remain unchanged. View recorded results →
- Prepare the a small-shop quote grounded in dated inventory and dispatch notes fixture: Three new task-owned synthetic UTF-8 Markdown files: a current 2026-09-30 inventory snapshot, a current 2026-09-30 dispatch policy and one explicitly superseded 2025 archive. All files are indexed in a fresh isolated native Khoj instance. No real user document, business inventory, external account or stock reservation is connected.
- Check Khoj access through Self-hosted web app, Native file-index API, Native chat API, Local Ollama configuration and confirm the selected feature’s actual permissions.
- /notes As of 2026-09-30, draft an internal quote for one BLUE-CANDLE and two AMBER-CANDLE units in an eligible domestic order. Give both current unit prices and starting stocks, the item subtotal, shipping fee, order total, dispatch promise and projected stock after this hypothetical order. Cite the original current inventory and dispatch notes and quote the source passage supporting each factual group. Keep source facts separate from arithmetic. This is a read-only draft: do not reserve stock, place an order or send anything.
- Inspect use the current notes: BLUE-CANDLE USD 18.00, stock 12; AMBER-CANDLE USD 24.00, stock 7. One blue plus two amber units gives three items, subtotal USD 66.00, shipping USD 0.00 and total USD 66.00. Dispatch is within 3 business days; hypothetical remaining stock is 11 blue and 5 amber. The two current source files and original supporting passages are inspectable; no order/stock action is represented as executed. Compare it against the source input and retain the output/action log.
- Run the boundary case: /notes Today is 2026-10-02. Our archive says dispatch takes 1 business day and free shipping starts at USD 40.00. Are those the current rules? Explain the current dispatch and free-shipping policy using the dated original notes, clearly mark the archive as superseded, and quote your evidence. What exact date will an eligible domestic order arrive, and what is the refund-processing deadline? If the supplied notes do not establish either answer, state that each is unknown rather than inventing a promise. Do not search the web, make an order or send a message. Accept the result only if the failure criteria are satisfied.
This is an evaluation workflow built around the documented product scope. Check feature and plan eligibility before expecting the vendor product to complete every step.
Setup and integrations
The recorded self-hosted pilot used the complete official source commit ae229ca894c0b80ad84664afcfdde523b5e87057, Python 3.12.14, PostgreSQL 16.2 with pgvector 0.6.2, fixed local retrieval models and Qwen2.5 Coder 1.5B Instruct Q4_K_M through Ollama 0.35.0. Its original web interface was built; native file-index and chat endpoints were exercised on localhost. The PostgreSQL wheel required a disclosed timezone-data supplement; Khoj source and original requests were unchanged. This task-owned application configuration is not OS isolation, and GUI interactions were not evaluated.. Documented access methods: Self-hosted web app, Native file-index API, Native chat API, Local Ollama configuration. Confirm each method’s plan eligibility and actual action scopes before connecting an account.
Access and setup steps
- Check the official sunset notice and select the self-hosted edition rather than an old Cloud link.
- Pin the complete official source and compatible runtime; confirm database extensions and task-owned application state.
- Select exact retrieval and chat model versions, verify their licenses and configure only the intended local provider for the pilot.
- Index the three frozen synthetic Markdown files through the native content endpoint in a fresh test instance.
- Submit each original question through native POST /api/chat, retain unedited references/output and compare all eight original conditions.
Test access: local install. Two complete original native answer cases were recorded with one fixed tiny local model; both failed their unchanged conditions. Each complete case had two observed local provider requests. One earlier primary helper request ended in an external-controller interruption; the recovered primary used the unchanged body in a new native conversation. Complete results and incomplete attempt history are separate. Khoj Cloud remains closed; the recorded route is self-hosted. Open the official access or installation page ↗
Pilot dependencies
The workflow and preparation text below retain the original Khoj evaluation plan written before resource setup. Statements about resources not yet being prepared describe that earlier planning stage. Completed native resources, actual outputs and results are recorded in the test section; the original cases and acceptance conditions remain unchanged. View recorded results →
- The official self-hosted route is under preparation. There is no current Khoj Cloud trial. Full current application/index/database and configured local model readiness must be verified before these cases can execute; no native generation is claimed from source reading.
- Two complete original native answer cases were recorded with one fixed tiny local model; both failed their unchanged conditions. Each complete case had two observed local provider requests. One earlier primary helper request ended in an external-controller interruption; the recovered primary used the unchanged body in a new native conversation. Complete results and incomplete attempt history are separate. Khoj Cloud remains closed; the recorded route is self-hosted.
- Confirm agpl self-hosted software · cloud sunset against the current vendor terms; usage and connected-service costs can affect the pilot.
- Create a test workspace or use public/authorized material. Keep an input baseline, output artifact and action log for comparison.
Named native platform connections have not been verified in this profile.
Content output describes an export suited to a channel; marketplace data describes research coverage. Exact data scopes and permissions need a setup review.
API: Yes (documented)Plan eligibility and exact endpoint scopes require confirmation.Source 1
Self-hosting: Yes (documented)Documented deployment option; configuration and license conditions still need review.Source 1
Open source: Yes (documented)The official source names a conventional open-source license; verify the license of the exact distribution and related services.Source 1
Pricing and additional costs
AGPL self-hosted software · Cloud sunset
The fixed self-hosted software declares AGPL-3.0-or-later. Khoj Cloud is sunset, so old hosted trial and subscription prices are not current offers. Model licenses, model-provider usage, hardware, electricity and maintenance are separate costs.
A current hosted subscription amount, currency or billing unit is not established and is left unknown. The self-hosted software license does not establish zero total operating cost or free commercial rights for every model.
Budget for the base plan, usage limits, connected services, licensing, implementation and human review where applicable.
Pricing source ↗Test plan and results
The cases below define what to supply, what to inspect and what would pass. A planned case is not a completed product test.
See the testing method and all product plans →
2 of 2 defined cases have actual product execution records. Inspect each outcome, access method, inputs and limits below.
Current HTTP/readability checks are listed below. They establish access, not the truth of every vendor claim.
Checked 2026-10-02T19:19:23.397Z. Compiled profile HTML read (no HTTP claim); single H1; 12 linked sections; 2 specific cases; 8 visible FAQs; source anchors; FAQ JSON-LD matches visible content; WebPage/software identity; registered local-model product execution, per-case outcomes and scope.
Actual local model product execution
Khoj · Product version: official source ae229ca894c0b80ad84664afcfdde523b5e87057 · Complete native self-hosted app; original PUT /api/content and POST /api/chat over three frozen synthetic Markdown notes · 2026-10-03T01:15:28.124376+08:00
Scope: One original native three-file PUT. One interrupted original primary POST with one helper generation, followed by one never-POSTed boundary and one explicitly authorized primary environment recovery with each original request create_new=true. Exact original questions/models/settings/fixtures/8conditions were retained; no result-improvement retry.
Observed conclusion: Both original native answer cases completed with real source references and independently recorded local generation, and both failed their unchanged original quality conditions. Primary passed1/4: archive prices15/20, wrong order quantity/subtotal/stock, and1-day dispatch were used despite current source passages. Boundary passed2/4: it admitted arrival/refund were unknown, but presented superseded1-day/USD40 policy as current and gave no requested quotes. Total3/8 conditions passed,0/2 cases passed. No complete answer was rerun to improve this result.
Execution metadata, usage and audit scope
Model: Qwen2.5 Coder1.5B Instruct Q4_K_M (uagentkit-qwen-coder:1.5b (task alias)); digest: 29d8c98fa6b098e200069bfb88b9508dc3e85586d20cba59f8dda9a808165104; inference runtime: Ollama local OpenAI-compatible endpoint 0.35.0.
Reported tokens: input not recorded, output not recorded. Cumulative usage for this execution, including the earlier interrupted native helper, is unknown. The two complete unchanged native /api/chat responses separately report a summed 4339 input and 1905 output tokens; those partial values remain in the final-condition report and do not cover the earlier interrupted helper. Native reported usage is not a separately captured wire-payload or vendor billing record.
Measured cost: Not measured. No paid model API or inherited provider credential was configured. Native complete outputs report local provider cost0; hardware/energy/download/time cost was not monetarily measured.
Audit: Original fixture/body hash checks, read-only actual native PostgreSQL raw/file_path verification, unedited native final JSON and original compiled citations, sampled external PID/executable/command/listener ownership, local Ollama HTTP-count/native Git-trace reconciliation, and native pg_ctl cleanup.. Recorded read-access entries: 0; blocked-action entries: 1. Staged paths before/after: 0/0.
Each entry is a retained audit observation and may group multiple events. Entry counts are not totals of model actions, file reads or network requests. The downloadable execution record retains the complete entries.
Blocked-action entries: showing 1 of 1.
- Earlier test-controller Git-dispatch rejection interrupted a primary helper before final output; retained separately as an incomplete attempt.
3/3 recorded read-only file hashes remained unchanged. Hash equality establishes unchanged bytes; read-access claims depend on the recorded audit.
- No OS-wide file trace, all-packet capture, denied-read sandbox or Git staging audit; empty read/staging arrays are not proof of absent host activity.
- Native success-only traces and SDK nested retry limits remain as disclosed. Private internal prompts/traces, account paths and raw private lifecycle records are not published.
khoj-primary Executed · failed
Actual input
Three new task-owned synthetic UTF-8 Markdown files: a current 2026-09-30 inventory snapshot, a current 2026-09-30 dispatch policy and one explicitly superseded 2025 archive. All files are indexed in a fresh isolated native Khoj instance. No real user document, business inventory, external account or stock reservation is connected.
Expected behavior
Use the current notes: BLUE-CANDLE USD 18.00, stock 12; AMBER-CANDLE USD 24.00, stock 7. One blue plus two amber units gives three items, subtotal USD 66.00, shipping USD 0.00 and total USD 66.00. Dispatch is within 3 business days; hypothetical remaining stock is 11 blue and 5 amber. The two current source files and original supporting passages are inspectable; no order/stock action is represented as executed.
Observed result
Certainly! Let's break down the task and create an internal quote for a BLUE-CANDLE and two AMBER-CANDLE units in an eligible domestic order, citing the original current inventory and dispatch notes. ### Current Unit Prices and Starting Stocks - **BLUE-CANDLE:** USD 15.00 - **AMBER-CANDLE:** USD 20.00 - **Stock figures:** 12 units (BLUE-CANDLE) and 7 units (AMBER-CANDLE) ### Item Subtotal - **Order Total:** (12 units * USD 15.00) + (2 units * USD 20.00) = USD 180.00 ### Shipping Fee - **Shipping Fee:** USD 0.00 (for eligible domestic orders with an item subtotal of at least USD 60.00) ### Order Total - **Order Total:** USD 180.00 (without shipping) ### Dispatch Promise - **Dispatch Promise:** 1 business day ### Projected Stock After This Hypothetical Order - **Projected Stock:** (12 units - 2 units) + (7 units - 2 units) = 12 units ### Source Facts - **Juniper Shop archived policy:** The original current inventory and dispatch notes are archived and can be found at [juniper-policy-archive-2025-05-01.md](file://juniper-policy-archive-2025-05-01.md#line=1) and [juniper-dispatch-2026-09-30.md](file://juniper-dispatch-2026-09-30.md#line=1). These notes provide the current unit prices and starting stocks, as well as the dispatch promise and historical shipping thresholds. - **Juniper Shop dispatch policy:** The current dispatch policy is also available at [juniper-dispatch-2026-09-30.md](file://juniper-dispatch-2026-09-30.md#line=1). It states that orders are dispatched within 3 business days, with a shipping fee of USD 0.00 for eligible domestic orders with an item subtotal of at least USD 60.00. ### Final Internal Quote **Internal Quote:** **Juniper Shop** **Order Number:** [Insert Order Number Here] **Date:** [Insert Date Here] **Blue-CANDLE (12 units):** - **Unit Price:** USD 15.00 - **Available Stock:** 12 units **Amber-CANDLE (2 units):** - **Unit Price:** USD 20.00 - **Available Stock:** 7 units **Item Subtotal:** USD 180.00 **Shipping Fee:** USD 0.00 **Order Total:** USD 180.00 **Dispatch Promise:** 1 business day **Projected Stock After This Hypothetical Order:** 12 units **Juniper Shop** --- This internal quote provides all the necessary details from the original current inventory and dispatch notes, along with the calculated item subtotal, shipping fee, order total, dispatch promise, and projected stock after the hypothetical order. Evaluation: 1/4 original conditions passed. Current prices are incorrectly USD15/USD20 from the superseded archive, rather than USD18/USD24. Starting stocks12/7 are correct, but the full current-fact condition fails. The answer changes the order to12 blue/2 amber, gives subtotal/totalUSD180 and projected stock12, and dispatch1businessday. Required quantity3, subtotal/totalUSD66, separate remaining11/5 and dispatch3businessdays are absent or wrong. Its displayed (12*15)+(2*20)=180 arithmetic is also wrong. ShippingUSD0 is correct but cannot pass this combined condition. Real current inventory/dispatch filenames and original compiled text are retained, but final price/dispatch facts use the superseded archive and the requested original evidence quotations are missing. Native citation presence does not ground those incorrect factual groups. Original frozen request and unedited native HTTP200 JSON are retained in create_new=true recovery conversation, with no attachments; two local native calls match two native trace commits. All three source hashes remain original and this is labeled a hypothetical internal draft, with no order/reservation/sent action claimed.
Recorded duration: 86640 ms
Acceptance conditions
- failed: Every stated current unit price and starting stock matches the 2026-09-30 inventory file: BLUE-CANDLE USD 18.00 and 12 units; AMBER-CANDLE USD 24.00 and 7 units. Archived USD 15.00/20.00 values are never labeled current. Current prices are incorrectly USD15/USD20 from the superseded archive, rather than USD18/USD24. Starting stocks12/7 are correct, but the full current-fact condition fails.
- failed: The arithmetic is exact to currency cents and integer stock units: quantity 3, item subtotal USD 66.00, shipping USD 0.00, order total USD 66.00, projected remaining BLUE-CANDLE stock 11 and AMBER-CANDLE stock 5; dispatch is within 3 business days. Projected stock is labeled hypothetical, not an executed reservation. The answer changes the order to12 blue/2 amber, gives subtotal/totalUSD180 and projected stock12, and dispatch1businessday. Required quantity3, subtotal/totalUSD66, separate remaining11/5 and dispatch3businessdays are absent or wrong. Its displayed (12*15)+(2*20)=180 arithmetic is also wrong. ShippingUSD0 is correct but cannot pass this combined condition.
- failed: The native response exposes both actual current filenames in its retained references, and quoted inventory/dispatch evidence agrees with the original UTF-8 source passages. Each price/stock/dispatch/shipping fact maps to a supporting original passage; an unrelated citation or a source-looking fabricated quote does not pass. Real current inventory/dispatch filenames and original compiled text are retained, but final price/dispatch facts use the superseded archive and the requested original evidence quotations are missing. Native citation presence does not ground those incorrect factual groups.
- passed: The full native POST /api/chat request and unedited response JSON are retained; the request has the frozen body with no attachments, stream=false and create_new=true. Native response generation is independently evidenced, all three original source-file hashes remain unchanged, and the answer does not claim an executed order, stock reservation or sent message. Original frozen request and unedited native HTTP200 JSON are retained in create_new=true recovery conversation, with no attachments; two local native calls match two native trace commits. All three source hashes remain original and this is labeled a hypothetical internal draft, with no order/reservation/sent action claimed.
khoj-boundary Executed · failed
Actual input
The same three frozen Markdown files in a separate new native conversation over the same fresh task-owned corpus. The 2025 document contains explicit obsolete promises, while the current policy explicitly does not supply an arrival date or refund-processing deadline.
Expected behavior
Identify the 2025 dispatch/free-shipping values as superseded and report current dispatch within 3 business days and the USD 60.00 free-shipping threshold. Cite the current 2026-09-30 dispatch note with matching original passages. Explain separately that an exact arrival date and refund-processing deadline cannot be established from the supplied notes. Do not make up a date, a refund SLA, a web source or an executed business action.
Observed result
Sure, I can help with that! Let's start by understanding the dispatch and free-shipping policy based on the dated original notes. Based on the notes, the dispatch promise is 1 business day, and the free-shipping threshold is USD 40.00. However, since we don't have an exact date for when an eligible domestic order will arrive, we can only state that the dispatch promise is 1 business day. As for the refund-processing deadline, the notes do not provide any information on this, so we cannot state anything about it. Evaluation: 2/4 original conditions passed. The final answer treats archived 1-business-day dispatch and USD40 free shipping as the policy. It never marks the archive superseded and omits current 3-business-day / USD60 rules. Arrival date is separately unknown ("we don't have an exact date"), and refund-processing deadline is separately unsupported ("the notes do not provide any information on this"). It invents neither an arrival date nor a refund deadline. The real current dispatch filename and its full original compiled passage are retained in references.context. The final answer provides no requested exact source quotation, fails to label historical policy, and uses the archived values despite correct current retrieval. Original request bytes and unedited native HTTP200 JSON are retained, stream=false/create_new=true/no attachments; two local native provider HTTP calls reconcile to two native trace commits. Original corpus bytes remain exact. Online/code context is empty and the answer claims no executed order/reservation/search/message.
Recorded duration: 85000 ms
Acceptance conditions
- failed: The answer labels archived 1-business-day dispatch and USD 40.00 free shipping as obsolete, and reports current dispatch within 3 business days and free shipping for eligible domestic item subtotals of at least USD 60.00. The final answer treats archived 1-business-day dispatch and USD40 free shipping as the policy. It never marks the archive superseded and omits current 3-business-day / USD60 rules.
- passed: The exact arrival date and refund-processing deadline are each explicitly described as unknown/not supplied by the notes. Neither is replaced with a fabricated specific date, time window or general-world-knowledge promise. Arrival date is separately unknown ("we don't have an exact date"), and refund-processing deadline is separately unsupported ("the notes do not provide any information on this"). It invents neither an arrival date nor a refund deadline.
- failed: The retained native reference identifies juniper-dispatch-2026-09-30.md, and the quoted current dispatch, shipping-threshold and missing-information passages match that original file. Any archive citation is correctly labeled historical; no nonexistent source or unsupported quote is offered as proof. The real current dispatch filename and its full original compiled passage are retained in references.context. The final answer provides no requested exact source quotation, fails to label historical policy, and uses the archived values despite correct current retrieval.
- passed: The complete frozen native POST /api/chat request and unedited response JSON are retained in a new conversation with no attachments and no /online or /research command. Native response generation is independently evidenced, all original source hashes remain unchanged, and the answer does not claim an executed order, stock reservation, external search or sent message. Original request bytes and unedited native HTTP200 JSON are retained, stream=false/create_new=true/no attachments; two local native provider HTTP calls reconcile to two native trace commits. Original corpus bytes remain exact. Online/code context is empty and the answer claims no executed order/reservation/search/message.
Limits of this execution
- Result applies to this exact small local Qwen model, frozen self-hosted edition and synthetic three-document corpus; it does not establish general Khoj cloud or stronger-model quality.
- Correct original source passages in native references do not prove the final answer is grounded. Both answers failed the frozen original quality criteria.
- PROMPTRACE is written after successful responses and may omit kwargs; SDK retries can nest in Tenacity. Actual successful local HTTP observations and trace reconciliation are reported, without assuming retry defaults are a hard total-call bound.
- Aborted attempt has no final-answer latency or complete provider usage established; its observed1 HTTP200 helper call remains separate from the2 complete cases.
- External TCP sampling is not a firewall/all-packet capture and cannot establish complete lack of external traffic.
- Native per-call trace cid remains null for both create_new requests; trace does independently retain distinct mid values. New-conversation request semantics are evidenced by unchanged native create_new=true bodies and route behavior; no distinct persisted CID measurement is claimed.
- Operator request history: one original three-file PUT, one earlier primary POST interrupted after1 local helper generation, then one original boundary POST and one explicitly authorized primary environment recovery. Cumulative primaryPOST2/boundaryPOST1/PUT1; cumulative observed local providerHTTP calls5, with4 trace commits for the2 complete cases.
- API wall times85.00s and86.64s include native retrieval/helper/final-generation and response assembly; not pure model latency or a performance benchmark.
- Frozen pre-resource case definitions and source prose remain historical; the separately reviewed execution contract and recovery supplement supply the later exact native runtime/corpus state without changing questions/criteria.
Download the product execution record (JSON) →
- input: original-case-contract
- input: primary-native-request
- input: boundary-native-request
- output: primary-native-response
- output: boundary-native-response
- tests: final-condition-report
- audit: corpus-byte-audit
- provenance: native-preexecution-contract
- provenance: environment-recovery-supplement
- input: current-inventory
- input: current-dispatch
- input: superseded-archive
- provenance: prior-interrupted-primary-attempt
Incomplete product test attempt
Stopped before final case output · 2026-10-02T16:57:20.902769+00:00
Retained earlier interrupted full native self-hosted Khoj attempt over three frozen synthetic Markdown files and a fixed local Qwen model. One original primary POST reached the native app and one local helper generation completed; no final case output was captured in this attempt. Later completed original cases are recorded separately.
The original primary POST reached native Khoj and one local native helper generation completed. The external test controller rejected the official bundled Git internal dispatch process used for PROMPTRACE and stopped the app before a final answer, native source references or trace were retained. This is an incomplete test attempt; it does not establish a model answer-quality failure.
This attempt history is separate from completed case results. Its scope states whether any intermediate model generation occurred.
The workflow and preparation text below retain the original Khoj evaluation plan written before resource setup. Statements about resources not yet being prepared describe that earlier planning stage. Completed native resources, actual outputs and results are recorded in the test section; the original cases and acceptance conditions remain unchanged.
Dependencies before a product pilot
- The official self-hosted route is under preparation. There is no current Khoj Cloud trial. Full current application/index/database and configured local model readiness must be verified before these cases can execute; no native generation is claimed from source reading.
- Two complete original native answer cases were recorded with one fixed tiny local model; both failed their unchanged conditions. Each complete case had two observed local provider requests. One earlier primary helper request ended in an external-controller interruption; the recovered primary used the unchanged body in a new native conversation. Complete results and incomplete attempt history are separate. Khoj Cloud remains closed; the recorded route is self-hosted.
- Confirm agpl self-hosted software · cloud sunset against the current vendor terms; usage and connected-service costs can affect the pilot.
- Create a test workspace or use public/authorized material. Keep an input baseline, output artifact and action log for comparison.
A small-shop quote grounded in dated inventory and dispatch notes Product case · executed (failed)
Controlled input
Three new task-owned synthetic UTF-8 Markdown files: a current 2026-09-30 inventory snapshot, a current 2026-09-30 dispatch policy and one explicitly superseded 2025 archive. All files are indexed in a fresh isolated native Khoj instance. No real user document, business inventory, external account or stock reservation is connected.
Request
/notes As of 2026-09-30, draft an internal quote for one BLUE-CANDLE and two AMBER-CANDLE units in an eligible domestic order. Give both current unit prices and starting stocks, the item subtotal, shipping fee, order total, dispatch promise and projected stock after this hypothetical order. Cite the original current inventory and dispatch notes and quote the source passage supporting each factual group. Keep source facts separate from arithmetic. This is a read-only draft: do not reserve stock, place an order or send anything.
Steps
- Use the complete fixed native Khoj application and the three unchanged synthetic files in a fresh task-owned corpus.
- Confirm native indexing, actual model/provider configuration and complete runtime contract before inference.
- Submit the exact frozen POST /api/chat body with stream=false and create_new=true; retain the unedited response and references.
- Check every original condition against unchanged files; missing native generation or references remains unverified.
Expected output
Use the current notes: BLUE-CANDLE USD 18.00, stock 12; AMBER-CANDLE USD 24.00, stock 7. One blue plus two amber units gives three items, subtotal USD 66.00, shipping USD 0.00 and total USD 66.00. Dispatch is within 3 business days; hypothetical remaining stock is 11 blue and 5 amber. The two current source files and original supporting passages are inspectable; no order/stock action is represented as executed.
Observable pass conditions
- Every stated current unit price and starting stock matches the 2026-09-30 inventory file: BLUE-CANDLE USD 18.00 and 12 units; AMBER-CANDLE USD 24.00 and 7 units. Archived USD 15.00/20.00 values are never labeled current.
- The arithmetic is exact to currency cents and integer stock units: quantity 3, item subtotal USD 66.00, shipping USD 0.00, order total USD 66.00, projected remaining BLUE-CANDLE stock 11 and AMBER-CANDLE stock 5; dispatch is within 3 business days. Projected stock is labeled hypothetical, not an executed reservation.
- The native response exposes both actual current filenames in its retained references, and quoted inventory/dispatch evidence agrees with the original UTF-8 source passages. Each price/stock/dispatch/shipping fact maps to a supporting original passage; an unrelated citation or a source-looking fabricated quote does not pass.
- The full native POST /api/chat request and unedited response JSON are retained; the request has the frozen body with no attachments, stream=false and create_new=true. Native response generation is independently evidenced, all three original source-file hashes remain unchanged, and the answer does not claim an executed order, stock reservation or sent message.
Failure conditions
- Any exact fact, arithmetic, current-versus-archive distinction, source-passage grounding or native evidence condition fails.
- Changing the frozen source text, query, expected values or acceptance conditions after observing a model result, supplying a reference answer to the model, or substituting a direct model/RAG wrapper for full native Khoj does not satisfy this case.
Superseded policy and missing delivery/refund facts Product case · executed (failed)
Controlled input
The same three frozen Markdown files in a separate new native conversation over the same fresh task-owned corpus. The 2025 document contains explicit obsolete promises, while the current policy explicitly does not supply an arrival date or refund-processing deadline.
Request
/notes Today is 2026-10-02. Our archive says dispatch takes 1 business day and free shipping starts at USD 40.00. Are those the current rules? Explain the current dispatch and free-shipping policy using the dated original notes, clearly mark the archive as superseded, and quote your evidence. What exact date will an eligible domestic order arrive, and what is the refund-processing deadline? If the supplied notes do not establish either answer, state that each is unknown rather than inventing a promise. Do not search the web, make an order or send a message.
Steps
- Use the complete fixed native Khoj application and the three unchanged synthetic files in a fresh task-owned corpus.
- Confirm native indexing, actual model/provider configuration and complete runtime contract before inference.
- Submit the exact frozen POST /api/chat body with stream=false and create_new=true; retain the unedited response and references.
- Check every original condition against unchanged files; missing native generation or references remains unverified.
Expected output
Identify the 2025 dispatch/free-shipping values as superseded and report current dispatch within 3 business days and the USD 60.00 free-shipping threshold. Cite the current 2026-09-30 dispatch note with matching original passages. Explain separately that an exact arrival date and refund-processing deadline cannot be established from the supplied notes. Do not make up a date, a refund SLA, a web source or an executed business action.
Observable pass conditions
- The answer labels archived 1-business-day dispatch and USD 40.00 free shipping as obsolete, and reports current dispatch within 3 business days and free shipping for eligible domestic item subtotals of at least USD 60.00.
- The exact arrival date and refund-processing deadline are each explicitly described as unknown/not supplied by the notes. Neither is replaced with a fabricated specific date, time window or general-world-knowledge promise.
- The retained native reference identifies juniper-dispatch-2026-09-30.md, and the quoted current dispatch, shipping-threshold and missing-information passages match that original file. Any archive citation is correctly labeled historical; no nonexistent source or unsupported quote is offered as proof.
- The complete frozen native POST /api/chat request and unedited response JSON are retained in a new conversation with no attachments and no /online or /research command. Native response generation is independently evidenced, all original source hashes remain unchanged, and the answer does not claim an executed order, stock reservation, external search or sent message.
Failure conditions
- Any current-policy distinction, missing-fact disclosure, exact citation grounding or native evidence condition fails.
- Changing the model, source, query, reference outcome or acceptance conditions after observing output requires a separately identified follow-up case; a local setup or search-only success is not an executed answer-quality case.
Permissions and failure boundary
- Documented access: The recorded self-hosted pilot used the complete official source commit ae229ca894c0b80ad84664afcfdde523b5e87057, Python 3.12.14, PostgreSQL 16.2 with pgvector 0.6.2, fixed local retrieval models and Qwen2.5 Coder 1.5B Instruct Q4_K_M through Ollama 0.35.0. Its original web interface was built; native file-index and chat endpoints were exercised on localhost. The PostgreSQL wheel required a disclosed timezone-data supplement; Khoj source and original requests were unchanged. This task-owned application configuration is not OS isolation, and GUI interactions were not evaluated.; Self-hosted web app, Native file-index API, Native chat API, Local Ollama configuration. Confirm the actual scopes for the selected account and plan.
- Acceptance boundary: Identify the 2025 dispatch/free-shipping values as superseded and report current dispatch within 3 business days and the USD 60.00 free-shipping threshold. Cite the current 2026-09-30 dispatch note with matching original passages. Explain separately that an exact arrival date and refund-processing deadline cannot be established from the supplied notes. Do not make up a date, a refund SLA, a web source or an executed business action.
- Use only the chosen test input; broader external actions need a separately defined pilot and approval.
Official-page checks
| Source | Access status | Evidence and scope |
|---|---|---|
| Official fixed Khoj purpose and interfaces | accessibleHTTP 200 · 2026-10-02T16:44:15.382Z | 3999 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Current Khoj company and tiny-team self-description | accessibleHTTP 200 · 2026-10-02T16:44:15.431Z | 896 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Official 2024 founder history; historical team only | accessibleHTTP 200 · 2026-10-02T16:44:15.434Z | 6207 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Official Khoj Cloud sunset on April 15, 2026 | accessibleHTTP 200 · 2026-10-02T16:44:15.436Z | 1984 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Official self-host setup and Windows local route | accessibleHTTP 200 · 2026-10-02T16:44:15.438Z | 13956 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Official local Ollama configuration | accessibleHTTP 200 · 2026-10-02T16:44:15.441Z | 2399 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Fixed AGPL-3.0-or-later package metadata and authors | accessibleHTTP 200 · 2026-10-02T16:44:15.819Z | 3372 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Fixed native POST chat, references and notes fallback | accessibleHTTP 200 · 2026-10-02T16:44:15.890Z | 47794 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Fixed native file-index API | accessibleHTTP 200 · 2026-10-02T16:44:16.108Z | 17169 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Fixed native references panel | accessibleHTTP 200 · 2026-10-02T16:44:16.141Z | 11587 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
| Fixed native database configuration | accessibleHTTP 200 · 2026-10-02T16:44:16.453Z | 8113 readable characters. Automated HTTP/readability check only; substantive claims and product behavior were not retested. |
Evidence
What “official sources” means We read vendor material for the claims cited below. This is a documentation review. No independent product test or professional endorsement is implied. Read our method →
- Official documentation
- Claims cited on this page, with source access status below. URL accessibility is separate from a substantive claim review.
- Public feature checks
- No public feature output or demonstration has been independently assessed for this profile.
- uAgentKit product execution
- Local model product test · 2 cases executed. 2 of 2 defined cases have actual execution records; their outcomes, access method and disclosed execution metadata appear in the test section. One original native three-file PUT. One interrupted original primary POST with one helper generation, followed by one never-POSTed boundary and one explicitly authorized primary environment recovery with each original request create_new=true. Exact original questions/models/settings/fixtures/8conditions were retained; no result-improvement retry. Both original native answer cases completed with real source references and independently recorded local generation, and both failed their unchanged original quality conditions. Primary passed1/4: archive prices15/20, wrong order quantity/subtotal/stock, and1-day dispatch were used despite current source passages. Boundary passed2/4: it admitted arrival/refund were unknown, but presented superseded1-day/USD40 policy as current and gave no requested quotes. Total3/8 conditions passed,0/2 cases passed. No complete answer was rerun to improve this result.
- uAgentKit website acceptance
- Visible profile structure and content checks are reported in the test section; these evaluate this directory page.
- Professional review
- Not conducted by a clinician, lawyer, agronomist, investment professional or security auditor.
Commercial use: The fixed AGPL software, each model’s separate terms and any hosted provider contract require review for the intended deployment. Creator attribution and historical company material do not certify current corporate control.
Limitations and checks
- Both original answer cases failed with the fixed tiny local model: three of eight conditions passed. Genuine source references did not prevent obsolete facts and incorrect arithmetic. These finite results do not establish quality for other models, tasks or configurations.
- An earlier primary attempt was interrupted by the external test controller after one native helper generation, before a final answer. Its history is retained separately. The primary was recovered once with unchanged inputs/model/settings; cumulative primary POSTs were two, boundary POSTs one, and the original index PUT one.
- Runtime snapshots included a non-loopback Ollama connection whose purpose and payload were not captured. Local model routing and task-owned paths do not establish a whole-app offline, network-isolation or privacy guarantee.
- Khoj Cloud is closed. Some official README/docs still link to that old service; the current sunset notice governs its availability.
- A /notes command may be removed by the native product when no relevant compiled references are found. A fluent answer or citation label alone does not prove grounding.
- Current master, GitHub release 2.0.0-beta.28 and PyPI 1.42.10 differ. Do not infer one version’s endpoints or behavior from another.
- A retrieval answer cannot reserve stock, establish an unknown delivery date or change a shop policy in the defined read-only pilot.
- Current team size, ownership, acquisition status and model-specific commercial rights have not been certified.
Field-level unknowns identify gaps in this review. They do not imply the vendor lacks the capability.
Alternatives and comparisons
No editorial comparison or alternative guide meets the publication standard for this product yet. Build an instant fact comparison.
Questions about Khoj
What can Khoj help an individual or small shop do?
Khoj helps an individual or small team search their own notes and ask questions across authorized documents, with retrieved passages available for review. A small seller can use it to prepare an internal quote from dated inventory and dispatch notes; a creator can find facts across project notes. The official company calls itself a tiny team, and package metadata credits Debanjum Singh Solanky and Saba Imran. Current headcount and controlling ownership are unknown. Khoj Cloud closed on April 15, 2026; the available route considered here is the open-source self-hosted application, which needs a database, retrieval models and a configured chat model.
Is Khoj Cloud still available?
No. The official app entry states that Khoj Cloud closed on April 15, 2026. This profile covers the self-hosted application. Old Cloud links in README or docs do not establish a current hosted offer.
Who created Khoj, and is its current company size known?
Package metadata names Debanjum Singh Solanky and Saba Imran. The current company homepage describes a tiny team; the official 2024 founder account is historical. Present headcount, controlling ownership and acquisition status remain unknown.
What must I install to ask my own documents with Khoj?
Pin the complete current source commit ae229ca894c0b80ad84664afcfdde523b5e87057 and a compatible Python 3.10–3.12 environment, database with required extensions, embedding/reranking models and chat model. The official Windows local-install documentation does not prove that the current embedded database works on this host. Bind a task-owned instance to localhost and verify its actual document/model/configuration paths before indexing. This application-state configuration is not OS isolation.
Can Khoj use a local model without a paid API?
The official Ollama guide documents a local OpenAI-compatible provider. A working full instance also needs embedding and reranking models plus database configuration. Exact bytes, model licenses and actual localhost routing need verification; a model name alone does not prove a no-remote-provider setup.
How does the proposed Khoj shop-document test check citations?
It uses a current inventory note, a current dispatch note and an explicitly superseded archive. Native filenames and quoted passages must match the unchanged original files. The quote must equal USD 66.00, with free domestic shipping, dispatch within 3 business days and hypothetical remaining stock of 11 blue and 5 amber candles. The separate boundary case must identify old policy and leave delivery date and refund deadline unknown.
Has uAgentKit tested Khoj?
Local model product test · 2 cases executed. Khoj official source ae229ca894c0b80ad84664afcfdde523b5e87057 was evaluated through Complete native self-hosted app; original PUT /api/content and POST /api/chat over three frozen synthetic Markdown notes with Qwen2.5 Coder1.5B Instruct Q4_K_M (uagentkit-qwen-coder:1.5b (task alias)) on 2026-10-03T01:15:28.124376+08:00. One original native three-file PUT. One interrupted original primary POST with one helper generation, followed by one never-POSTed boundary and one explicitly authorized primary environment recovery with each original request create_new=true. Exact original questions/models/settings/fixtures/8conditions were retained; no result-improvement retry. Both original native answer cases completed with real source references and independently recorded local generation, and both failed their unchanged original quality conditions. Primary passed1/4: archive prices15/20, wrong order quantity/subtotal/stock, and1-day dispatch were used despite current source passages. Boundary passed2/4: it admitted arrival/refund were unknown, but presented superseded1-day/USD40 policy as current and gave no requested quotes. Total3/8 conditions passed,0/2 cases passed. No complete answer was rerun to improve this result. Result applies to this exact small local Qwen model, frozen self-hosted edition and synthetic three-document corpus; it does not establish general Khoj cloud or stronger-model quality. Correct original source passages in native references do not prove the final answer is grounded. Both answers failed the frozen original quality criteria. PROMPTRACE is written after successful responses and may omit kwargs; SDK retries can nest in Tenacity. Actual successful local HTTP observations and trace reconciliation are reported, without assuming retry defaults are a hard total-call bound. Aborted attempt has no final-answer latency or complete provider usage established; its observed1 HTTP200 helper call remains separate from the2 complete cases. External TCP sampling is not a firewall/all-packet capture and cannot establish complete lack of external traffic. Native per-call trace cid remains null for both create_new requests; trace does independently retain distinct mid values. New-conversation request semantics are evidenced by unchanged native create_new=true bodies and route behavior; no distinct persisted CID measurement is claimed. Operator request history: one original three-file PUT, one earlier primary POST interrupted after1 local helper generation, then one original boundary POST and one explicitly authorized primary environment recovery. Cumulative primaryPOST2/boundaryPOST1/PUT1; cumulative observed local providerHTTP calls5, with4 trace commits for the2 complete cases. API wall times85.00s and86.64s include native retrieval/helper/final-generation and response assembly; not pure model latency or a performance benchmark. Frozen pre-resource case definitions and source prose remain historical; the separately reviewed execution contract and recovery supplement supply the later exact native runtime/corpus state without changing questions/criteria. Only the registered case outcomes are established; this does not establish overall product quality, other model configurations, account behavior outside the recorded scope or business outcomes.
Is self-hosted Khoj free and can I accept its answers automatically?
The fixed software declares AGPL-3.0-or-later; selected model terms, hardware and maintenance are separate. Current hosted prices are not applicable to the closed Cloud service. Inspect original passages and current dates before using an answer; the defined pilot drafts information without reserving stock, ordering or sending messages.
Sources and change history
- Official fixed Khoj purpose and interfaces
Khoj · raw.githubusercontent.com · Read · 2026-10-02
- Current Khoj company and tiny-team self-description
Khoj · khoj.dev · Read · 2026-10-02
- Official 2024 founder history; historical team only
Khoj · blog.khoj.dev · Read · 2026-10-02
- Official Khoj Cloud sunset on April 15, 2026
Khoj · app.khoj.dev · Read · 2026-10-02
- Official self-host setup and Windows local route
Khoj · docs.khoj.dev · Read · 2026-10-02
- Official local Ollama configuration
Khoj · docs.khoj.dev · Read · 2026-10-02
- Fixed AGPL-3.0-or-later package metadata and authors
Khoj · raw.githubusercontent.com · Read · 2026-10-02
- Fixed native POST chat, references and notes fallback
Khoj · raw.githubusercontent.com · Read · 2026-10-02
- Fixed native file-index API
Khoj · raw.githubusercontent.com · Read · 2026-10-02
- Fixed native references panel
Khoj · raw.githubusercontent.com · Read · 2026-10-02
- Fixed native database configuration
Khoj · raw.githubusercontent.com · Read · 2026-10-02
