summaryrefslogtreecommitdiff
path: root/docs/dev
AgeCommit message (Collapse)Author
2026-08-13[feat] engines: add paid yandex search api (#6349)ArsenBilov
2026-08-10[feat] engines: add jina (general)Bnyro
2026-07-30chore: remove presearch engineLéon Tiekötter
Removing the presearch engine and configuration because it got shutdown. ref.: https://news.presearch.io/a-message-from-the-presearch-team-aaa448052b2b https://x.com/presearchnews/status/2080744472791441807
2026-07-28[feat] engines: add Exa Search API enginekesku
2026-07-02[fix] API docs: remove doc of not existing parameters (#6346)Markus Heiser
TBH: Some of the parameters such as engines or plugins still theoretically exist in SearXNG, but we will no longer support them. They are usually accessed via cookies and should not pollute the API / it is these supposed features that hinder SearXNG in further development. Closes: https://github.com/searxng/searxng/issues/6003 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-06-22[del] aol: remove engine (eol) (#6299)Bnyro
2026-06-13[feat] autocomplete: add privacywall autocompleter (#6211)Bnyro
2026-06-12[feat] engines: add support for Kagi (requires API key)Bnyro
2026-06-07[del] karmasearch: remove engine (cloudflared) (#6213)Bnyro
The engine is using very aggressive Cloudflare blocking for a while now, no matter if using a normal browser like Firefox or not. Closes: https://github.com/searxng/searxng/issues/5976
2026-05-26[mod] typification of SearXNG: add new result type Image (#6142)Markus Heiser
- Python class: searx/result_types/image.py - Jinja template: searx/templates/simple/result_templates/images.html - CSS (less) client/simple/src/less/result_types/image.less Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-05-25[mod] normalize variable name for the max number of results per request (#6131)Markus Heiser
[mod] normalize variable name for the max number of results per request In the past, we have used different names for the variable that specifies the maximum number of hits in the outgoing request. - ``page_size`` - ``number_of_results`` - ``nb_per_page`` Since *page_size* is the most accurate term and is also used in the XPath engines, all other engines are adjusted accordingly within this patch .. documentation adjusted accordingly. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-05-21[feat] engines: add 500px.com engine (#6091)Bnyro
2026-05-17[feat] engines: add cara.app engine (#6092)Bnyro
2026-05-13[doc] Development Quickstart: documentation of the tools (dev.env)Markus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-05-07[furo] remove `.. contents::` directives (#3408)Markus Heiser
The directive creates a table of contents for the page. However, Furo includes a table of contents already in the sidebar. It is, thus, recommended to removing the `.. contents::` directive. [1] https://github.com/pradyunsg/furo/issues/88#issuecomment-803297274 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-05-05[doc] fix issues reported since Sphinx v9.1.0Markus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-03-25[feat] engines: add karmasearch engine (brave mirror)Bnyro
2026-03-24[feat] engines: add support for aol.com (#5882)Bnyro
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2026-03-03[mod] engines: remove stract engine (#5800)Ivan Gabaldon
Engine probably dead, developer doesn't have time to maintain it anymore: - https://github.com/StractOrg/stract/issues/267 Related: - https://github.com/searxng/searxng/pull/3099
2026-02-22[mod] drop SearXNG's checker (#5767)Markus Heiser
To date, there is no analysis for the checker that could be evaluated in any meaningful way. - https://github.com/searxng/searxng/issues/3407 - https://github.com/searxng/searxng/pull/3312 The checker would need to be completely redesigned, but even then, its usefulness and the maintenance required for it would be disproportionate. TBH: In its current form, it is useless and only consumes resources and causes the engines to be blocked, because these tests (query terms) come from *hundreds* of instances and could be interpreted as bot attacks. Related issues: [search.checker](https://github.com/searxng/searxng/issues?q=label%3A%22search.checker%22) Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2026-02-21[mod] engines: remove seekr engineBnyro
Looks like https://www.seekr.com/ was sold to an other company that does something with enterprise AI and no longer provides any web search engine.
2026-02-16[feat] engines: add artstation engine (#5728)Carsten Csiky
- use proper Brave API with api_key for search Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-12-29 [mod] docs: better explanation for search api usage and format support (#5574)Tommaso Colella
2025-12-02[mod] client/simple: client plugins (#5406)Ivan Gabaldon
* [mod] client/simple: client plugins Defines a new interface for client side *"plugins"* that coexist with server side plugin system. Each plugin (e.g., `InfiniteScroll`) extends the base `ts Plugin`. Client side plugins are independent and lazy‑loaded via `router.ts` when their `load()` conditions are met. On each navigation request, all applicable plugins are instanced. Since these are client side plugins, we can only invoke them once DOM is fully loaded. E.g. `Calculator` will not render a new `answer` block until fully loaded and executed. For some plugins, we might want to handle its availability in `settings.yml` and toggle in UI, like we do for server side plugins. In that case, we extend `py Plugin` instancing only the information and then checking client side if [`settings.plugins`](https://github.com/inetol/searxng/blob/1ad832b1dc33f3f388da361ff2459b05dc86a164/client/simple/src/js/toolkit.ts#L134) array has the plugin id. * [mod] client/simple: rebuild static
2025-11-22[fix] drop mullvad-leta engine (#5428)Grant
On 2025 November 27th, Mullvad will be shutting down the Leta servers. For this reason, we also need to remove this engine from SearXNG. [1] https://mullvad.net/en/blog/shutting-down-our-search-proxy-leta
2025-11-05[feat] sourcehut engine: implement as custom module, fix user agentBnyro
SourceHut uses a foss bot protection tool called `go-away` (which I can recommend BTW). It blocks common crawler user agents, such as the standard Firefox user agent. Hence, we're now using our custom SearXNG user agent to clarify we're not a crawler. Closes: https://github.com/searxng/searxng/issues/5270 Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-20[mod] typification of SearXNG: add new result type FileMarkus Heiser
This PR adds a new result type: File Python class: searx/result_types/file.py Jinja template: searx/templates/simple/result_templates/file.html CSS (less) client/simple/src/less/result_types/file.less Class 'File' (singular) replaces template 'files.html' (plural). The renaming was carried out because there is only one file (singular) in a result. Not to be confused with the category 'files' where in multiple results can exist. As mentioned in issue [1], the class '.category-files' was removed from the CSS and the stylesheet was adopted in result_types/file.less (there based on the templates and no longer based on the category). [1] https://github.com/searxng/searxng/issues/5198 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-13[feat] engines: add Azure resources engine (#5235)Tommaso Colella
Adds a new engine `searx/engines/azure.py` to search cloud resources on Azure. A lot of enterprise users have to deal with Azure Public Cloud. This helps them easily search for cloud resources without logging in to the Portal first How to test this PR locally? You should create an App Registration on Azure Entra Id with Reader access on the resources you want to search for. You should create a Secret for the App Registration. After that, you should set up appropriate values in the `settings.yml` file [1]:: - name: azure engine: azure ... azure_tenant_id: "your_tenant_id" azure_client_id: "your_client_id" azure_client_secret: "your_client_secret" azure_token_expiration_seconds: 5000 [1] https://github.com/searxng/searxng/pull/5235#issuecomment-3397664928 Co-authored-by: Bnyro <bnyro@tutanota.com> Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01[mod] drop searxng_extra/standalone_searx.py (#5256)Markus Heiser
This is an old and grumpy hack / SearXNG is a Flask application with client/server structure, which can't be turned into a command line tool the way it was done here. Maintaining this hack is becoming increasingly complex the more we try to remodel the core code, which is why we should now remove the hack from SearXNG. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01[doc] dev - cleanup asdf remnants and add a note about mise-en-place (#5264)Ivan Gabaldon
Notes on the developer environment with MISE have been added to the Quickstart Guide. We migrated `.tool-versions` to replace it with `mise` [1], so we can now remove `asdf` related documentation. [1] https://github.com/searxng/searxng/pull/5253 Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] ADS engine: revision of the engine (Paper result)Markus Heiser
Revision of the Astrophysics Data System (ADS) engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Springer Nature engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Semantic Scholar engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] PubMed engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Open Library engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] OpenAlex engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Crossref engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] arXiv engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] typification of SearXNG: add new result type PaperMarkus Heiser
This patch adds a new result type: Paper - Python class: searx/result_types/paper.py - Jinja template: searx/templates/simple/result_templates/paper.html - CSS (less) client/simple/src/less/result_types/paper.less Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-18[mod] addition of various type hints / engine processorsMarkus Heiser
Continuation of #5147 .. typification of the engine processors. BTW: - removed obsolete engine property https_support - fixed & improved currency_convert - engine instances can now implement a engine.setup method [#5147] https://github.com/searxng/searxng/pull/5147 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-01[feat] engines: add repology.org engine for linux packages (#5103)Bnyro
Repology_ monitors a huge number of package repositories and other sources comparing packages versions across them and gathering other information. Repology_ shows you in which repositories a given project is packaged, which version is the latest and which needs updating, who maintains the package, and other related information. .. _Repology: https://repology.org/docs/about Co-authored-by: Markus Heiser <markus.heiser@darmarit.de> Format: reST
2025-09-01[mod] typification of SearXNG: add new result type CodeMarkus Heiser
This patch adds a new result type: Code - Python class: searx/result_types/code.py - Jinja template: searx/templates/simple/result_templates/code.html - CSS (less) client/simple/src/less/result_types/code.less Signed-of-by: Markus Heiser <markus.heiser@darmarIT.de>
2025-08-28[feat] plugins: add new time/timezone search pluginBnyro
The plugin uses the ``GeoLocation`` class, which is already implemented in the context of weather forecasts, to determine the time zone. The ``DateTime`` class is used for the localized display of date and time. Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-08-24[feat] engines: add OpenAlex Works engine (#5102)muthukumaran R
- Adds a new engine `searx/engines/openalex.py` that integrates the OpenAlex Works API to return scientific paper results using the `paper.html` template. - Uses the official API (no auth required); supports OpenAlex polite pool via `mailto`. - Adds developer docs at `docs/dev/engines/online/openalex.rst`. OpenAlex API reference: https://docs.openalex.org/how-to-use-the-api/api-overview
2025-08-20[feat] engines: add GitHub Code Search engine (#5074)Filip Mikina
This patch adds GitHub Code Search [1] engine to allow querying the codebases. Template code.html is changed to allow passthrough of strip and highlighting options. Engine Searchcode is adjusted to pass filename and not rely on hardcoded extensions. GitHub search code API does not return the exact code line indices, this implementation assigns the code arbitrary numbers starting from 1 (effectively relabeling the code). The API allows for unauth calls, and the default engine settings default to that, although the calls are heavily rate limited. The 'text' lexer is the default pygments lexer when parsing fails. [1] https://docs.github.com/en/rest/search/search?apiVersion=2022-11-28#search-code Co-authored-by: Markus Heiser <markus.heiser@darmarIT.de>
2025-08-18[mod] theme/simple: migrate codebase to TypeScriptIvan Gabaldon
TypeScript is a superset of JavaScript, converting the entire theme to TypeScript allows us to receive much more feedback on possible issues made in package updates or our own typos, furthermore, it allows to transpile properly to lower specs. This PR couldn't be done in smaller commits, a lot of work needed to make everything *work properly*: - A browser baseline has been set that requires minimum **Chromium 93, Firefox 92 and Safari 15** (proper visuals/operation on older browser versions is not guaranteed) - LightningCSS now handles minification and prefix creation for CSS. - All hardcoded polyfills and support for previous browser baseline versions have been removed. - Convert codebase to TypeScript. - Convert IIFE to ESM, handling globals with IIFE is cumbersome, ESM is the standard for virtually any use of JS nowadays. - Vite now builds the theme without the need for `vite-plugin-static-copy`. - `searxng.ready` now accepts an array of conditions for the callback to be executed. - Replace `leaflet` with `ol` as there were some issues with proper Vite bundling. - Merged `head` with `main` script, as head was too small now. - Add `assertElement` to properly check the existence of critical DOM elements. - `searxng.on` renamed to `searxng.listen` with some handling improvements.
2025-08-09[doc] Development Quickstart: debug with the Python Debugger pdb (#5100)Markus Heiser
Related: - https://github.com/searxng/searxng/pull/5037#issuecomment-3166851578
2025-08-09[feat] engines: add Marginalia (#5087)Austin-Olacsi
To get an API key follow instructions at [1]. [1] https://about.marginalia-search.com/article/api/ Related (historical ordered): - https://github.com/searxng/searxng/issues/1620 - https://github.com/searxng/searxng/issues/1673 - https://github.com/searxng/searxng/pull/1627 - https://github.com/searxng/searxng/pull/2489 Closes: - https://github.com/searxng/searxng/issues/3034 Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-07-28[enh] CI - add shell script formatterMarkus Heiser
Implement rules and functions to format shell scripts: $ make format.shell or alternatively to format all source code: $ make format The formatter `shfmt` reads the rules from the editorconfig[1] If any EditorConfig files are found, they will be used to apply formatting options. If any parser or printer flags are given to the tool, no EditorConfig files will be used. [1] https://github.com/patrickvane/shfmt?tab=readme-ov-file#description Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-07-28[chore] overdue maintenance of shell scriptsMarkus Heiser
Removes obsolete scripts and fix various leftovers. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>