{"id":13544628,"url":"https://github.com/kholmogorov27/chevron","last_synced_at":"2025-04-02T14:31:39.662Z","repository":{"id":104002940,"uuid":"609351630","full_name":"kholmogorov27/chevron","owner":"kholmogorov27","description":"Powerful and highly functional startpage integrated with chatGPT and hidden under the super minimalistic and animated design (static/hosted/github pages)","archived":false,"fork":false,"pushed_at":"2024-04-17T17:07:53.000Z","size":2823,"stargazers_count":346,"open_issues_count":7,"forks_count":103,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-03T11:34:10.142Z","etag":null,"topics":["animated","artificial-intelligence","browser-customization","chatgpt","chevron","homepage","minimalist","new-tab","newtab","open-source","openapi","productivity","react","start-page","startpage","startpages","web"],"latest_commit_sha":null,"homepage":"https://kholmogorov27.github.io/chevron/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kholmogorov27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-03-03T23:40:14.000Z","updated_at":"2024-11-01T00:53:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"0c3fee72-4e0a-499e-b0e6-9674ef3f63fe","html_url":"https://github.com/kholmogorov27/chevron","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kholmogorov27%2Fchevron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kholmogorov27%2Fchevron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kholmogorov27%2Fchevron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kholmogorov27%2Fchevron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kholmogorov27","download_url":"https://codeload.github.com/kholmogorov27/chevron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246832415,"owners_count":20841163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animated","artificial-intelligence","browser-customization","chatgpt","chevron","homepage","minimalist","new-tab","newtab","open-source","openapi","productivity","react","start-page","startpage","startpages","web"],"created_at":"2024-08-01T11:00:51.666Z","updated_at":"2025-04-02T14:31:34.649Z","avatar_url":"https://github.com/kholmogorov27.png","language":"JavaScript","funding_links":[],"categories":["Projects","Install Instructions:","JavaScript"],"sub_categories":["GitHub Pages","Startpage"],"readme":"# Chevron [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE.md) ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)\n\n\u003cp align=center\u003e\n  \u003cimg width=\"80%\" src=\"https://i.imgur.com/Wa7HcuW.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n  Сhevron is a \u003ci\u003epowerful\u003c/i\u003e and highly \u003ci\u003efunctional\u003c/i\u003e startpage integrated with chatGPT\u003cbr/\u003e and hidden under the super \u003ci\u003eminimalistic\u003c/i\u003e and \u003ci\u003eanimated\u003c/i\u003e design\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n  available in \u003ci\u003estatic\u003c/i\u003e, \u003ci\u003ehosted\u003c/i\u003e and \u003ci\u003egithub pages\u003c/i\u003e options\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n  \u003cfont size=4\u003e\n    \u003ca href=\"https://kholmogorov27.github.io/chevron/\"\u003eLive Demo\u003c/a\u003e | \n    \u003ca href=\"https://github.com/kholmogorov27/chevron/releases/latest\"\u003eDownload\u003c/a\u003e |\n    \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\n  \u003c/font\u003e\n\u003c/p\u003e\n\n## Content\n\n- [Features](#features)\n- [Screenshots](#screenshots)\n- [Installation](#installation)\n  \u003cfont size=2\u003e\n  - [Static _\u003csup\u003e(recommended)\u003c/sup\u003e_](#static-recommended)\n  - [Hosted](#hosted)\n  - [GitHub Pages](#github-pages)\n    \u003c/font\u003e\n- [Usage](#usage)\n  \u003cfont size=2\u003e\n  - [Macros and commands](#macros-and-commands)\n  - [Macros menu](#macros-menu)\n  - [Hotkeys](#hotkeys)\n  - [ChatGPT](#chatgpt)\n    \u003c/font\u003e\n- [Configuration](#configuration)\n  \u003cfont size=2\u003e\n  - [Settings](#settings)\n  - [config.js](#configjs)\n    \u003c/font\u003e\n- [TODO](#todo)\n- [Technologies](#technologies)\n\n## Features\n\nautosuggestions, history, macros and commands, macros menu, hotkeys, chatGPT integration, currency converter, calculator, animated and minimalist design\n\n## Screenshots\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://i.imgur.com/7j0f88w.png\"/\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://i.imgur.com/eaBEk6m.png\"/\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://i.imgur.com/0bNz1vL.png\"/\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://i.imgur.com/TSY3T6k.png\"/\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExNWZmMTY3YmI1YzkxMDMyNDhmZmFhMTAzZTc2MTcwZWM1NDZiNGJiZSZjdD1n/libdVLG7NrsRv9LYAJ/giphy.gif\"/\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExNzc3ZDI3NTczNWMyMzcyMjUxMmEzNmVhNGIzMTcwYmYyNDZhOTk2MCZjdD1n/P6sYvkQHOpjVTGhZHv/giphy.gif\"/\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd colspan=2 align=center\u003e\n        \u003cimg src=\"https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExY2YyOTI3Yzg3NWU2MzhkZjBjZWVjN2EzMTY2YzNlNGIzZDQzNmVkZiZjdD1n/FoIvawvfxuoQ2IMZ8H/giphy.gif\"/\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Installation\n\nYou can set Chevron as the homepage (in the browser settings) or the new tab (you will need a custom tab extension).\n\n\u003ca id=\"focus-problem\"\u003e\u003c/a\u003e\n\n\u003e **Warning**\n\u003e If you want the app itself to be focused when opening a new tab and not the address bar,  \n\u003e I recommend [this](https://chrome.google.com/webstore/detail/new-tab-redirect/icpgjfneehieebagbmdbhnlpiopdcmna) extension in tandem with the [hosted](#hosted) or [github pages](#github-pages) installation method for all chromium based browsers (_Google Chrome, Microsoft Edge, Brave, Opera, Vivaldi etc_)\n\nThere are a few ways to install Chevron:\n\n### Static _\u003csup\u003e(recommended)\u003c/sup\u003e_\n\n\u003e This method is **recommended** because it doesn't depend on your internet connection or any remote servers, and the UI will be loaded instantly.  \n\u003e Some browser and extensions might have [the focus problem](#focus-problem)\n\n1. Download [the latest release](https://github.com/kholmogorov27/chevron/releases/latest)\n1. Unzip the archive in any convenient place\n\n### Hosted\n\n\u003e This method is useful when you want to fix [the focus problem](#focus-problem) or for any other reason the _Local file_ method doesn't work for you\n\n\u003e **Note**\n\u003e This method assumes that you have [Node.js and npm](https://nodejs.org/en/download/) installed on your PC\n\n1. Clone this repository\n1. [Build](#build)\n1. Install node-(_windows/linux/mac_)\n\n   _for Windows:_\n\n   ```bash\n   npm install -g node-windows \u0026\u0026 npm link node-windows\n   ```\n\n   _for Linux:_\n\n   ```bash\n   npm install -g node-linux \u0026\u0026 npm link node-linux\n   ```\n\n   _for Mac:_\n\n   ```bash\n   npm install -g node-mac \u0026\u0026 npm link node-mac\n   ```\n\n1. Register the local server as a system service\n\n   \u003e **Note**\n   \u003e Administrator privileges are required to run this command\n\n   _for Windows:_\n\n   ```bash\n   npm run register_windows\n   ```\n\n   _for Linux:_\n\n   ```bash\n   npm run register_linux\n   ```\n\n   _for Mac:_\n\n   ```bash\n   npm run register_mac\n   ```\n\n   This operation will create a service in your system to run the server on startup.\n\n   To uninstall the service, run the command again.\n\nAfter you register the server, you will be able to access Chevron on **_localhost:8000_**\n\n### GitHub Pages\n\n\u003e This method **isn't recommended** because it depends on your internet connection and GitHub servers\n\n1. Fork this repository\n1. Go `Settings` \u0026rarr; `Pages` \u0026rarr; \u003ccode\u003eBranch: \u003ci\u003e\"gh-pages\"\u003c/i\u003e\u003c/code\u003e \u0026rarr; `Save`\n1. Wait until your link will appear\n\n## Build\n\n\u003e **Note** \u003e [Node.js and npm](https://nodejs.org/en/download/) are required\n\n1. Install dependencies\n\n   ```bash\n   npm install\n   ```\n\n1. Build\n\n   ```bash\n   npm run build\n   ```\n\nAfter building, you can find all the necessary files in the `/dist` folder\n\n## Usage\n\nTo use Chevron's main functionality, just type something (you don't need to worry about focus on the input field, it is always in focus at the right moment).\n\nAs soon as you type something, the query will be parsed and suggestions will be given.\n\nSuggestions generates from history and autosuggestion engine. You can limit number of suggestions for each source is settings.\n\nBy default, you will be redirected to the search page of the search engine, however if the query matches a trigger of a macro, redirecting to this query will take you to the URL, specified in macro properties (`url` property).\n\n- #### **Macros and commands**:\u003cbr/\u003e\n\n  _\u003cspan style=\"color: orange\"\u003eMacro\u003c/span\u003e_ is something like a bookmark. It helps access your frequently visited websites.\u003cbr/\u003e\n  To use a macro, your query must match one of its triggers.\n  \u003cpre\u003e\u003cspan style=\"color: grey\"\u003e\u003e\u003c/span\u003e \u003cspan style=\"color: orange\"\u003egh\u003c/span\u003e\u003c/pre\u003e\n\n  _\u003cspan style=\"color: limegreen\"\u003eCommand\u003c/span\u003e_ is an addition to macros. With commands you can implement some website logic by modifying the URL.\u003cbr/\u003e\n  To use a command, you need to put the command after a trigger of a macro (the command must be defined in the global and macro commands lists). Everything going after a command is _\u003cspan style=\"color: steelblue\"\u003eargument\u003c/span\u003e_.\n  \u003cpre\u003e\u003cspan style=\"color: grey\"\u003e\u003e\u003c/span\u003e \u003cspan style=\"color: orange\"\u003eso\u003c/span\u003e\u003cspan style=\"color: limegreen\"\u003e?\u003c/span\u003e\u003cspan style=\"color: steelblue\"\u003ehow to parse html with regex\u003c/span\u003e\u003c/pre\u003e\n\n  To ignore macros and force using search engine press \u003ckbd\u003e\u003cfont size=3\u003eCtrl\u003c/font\u003e\u003c/kbd\u003e\n\n- #### **Macros menu**:\n\n  Macros can be pinned to macros menu.\n\n  **_Controls_**:\n\n  - **open/close**:\n\n    - the _macros menu toggle button_ in the right bottom corner\n      \u003e **Note**\n      \u003e The macros menu toggle button will appear only on hover after you click it at least once\n    - \u003ckbd\u003e\u003cfont size=3\u003eRMB\u003c/font\u003e\u003c/kbd\u003e\n    - \u003ckbd\u003e\u003cfont size=3\u003eShift\u003c/font\u003e\u003c/kbd\u003e\n\n  - **navigation**:\n\n    - \u003ckbd\u003e\u003cfont size=3\u003e←\u003c/font\u003e\u003c/kbd\u003e \u003ckbd\u003e\u003cfont size=3\u003e→\u003c/font\u003e\u003c/kbd\u003e\n    - mouse wheel\n    - drag\n\n- #### **Hotkeys**:\n\n  You can use hotkeys to quickly call macros which have `key` property.\n\n  \u003ckbd\u003e\u003cfont size=3\u003eShift\u003c/font\u003e\u003c/kbd\u003e + \\\u003c**key**\\\u003e\n\n  \u003e macro must be `pinned`\n\n- #### **ChatGPT**:\n\n  Before using ChatGPT you need to specify your [OpenAI API key](https://platform.openai.com/account/api-keys) in `Settings` \u0026rarr; `Query` \u0026rarr; `AI` \u0026rarr; `Api key`.\n\n  \u003e the key is stored locally on your computer\n\n  To use ChatGPT integration double press \u003ckbd\u003e\u003cfont size=3\u003eSpace\u003c/font\u003e\u003c/kbd\u003e after you typed a query.\n\n## Configuration\n\n### Settings\n\nYou can configure main functionality of the app in **Settings**.\n\nTo open **Settings**, click on the _gear icon_ in the top right corner.\n\nYou can click the _show/hide_ icon at the bottom of the **Settings** window to show advanced settings.\n\n\u003e **Note**\n\u003e The gear icon will appear only on hover after you visit **Settings** at least once\n\n### config.js\n\nYou can edit **_Macros_** and **_Commands_** only in the `/config.js` file yet.\n\n`/config.js` contains a single JS object named **CONFIG** which has 3 properties:\n\n- **macros** `Array`\n\n  structure:\n\n  ```javascript\n  {\n    name: string, // macros name\n    category: string, // category of the macros\n    url: string, // full macros URL\n    normalisedURL: string, // normalised URL (secondLevelDomain + '.' + firstLevelDomain)\n    triggers: [ string, ... ], // list of triggers\n    commands: { // commands of the macro\n      [type]: {\n        // {@} - macros URL\n        // {$} - command argument\n        template: string, // URL template\n        description (optional): string // description of the command for this macros\n      }\n    },\n    bgColor: complexColor, // background color\n    textColor: string, // text color\n    pinned: boolean, // is the macros pinned in the Macros Menu\n    key: (optional): string, // hotkey ('key' + \u003ckeyName\u003e)\n    icon: (optional): string // the name of the icon in the \"/icons.js\" file\n  }\n  ```\n\n- **commands** `Array`\n\n  structure:\n\n  ```javascript\n  {\n    type: string, // command type (name)\n    trigger: string // command trigger (preferably a symbol)\n  }\n  ```\n\n- **engines** `Object`\n\n  structure:\n\n  ```javascript\n  {\n    name: string, // engine name\n    bgColor: complexColor, // background color\n    textColor: string, // text color\n    types: { // query, calculator, currency, ...\n      [type]: {\n        // {@} - raw query (what user typed)\n        // {$} - parsed query (what is in the query field)\n        template: string // URL template\n      }\n    }\n  }\n  ```\n\nBecause of the limitations of the CORS policy, macros icons must be stored in `/icons.js` in the `ICONS` object. You can put there any valid HTML SVG as a string\n\n\u003e **Warning**\n\u003e be aware of quotes\n\n## TODO\n\n- [ ] The _\"Legacy\"_ mode\n- [x] Macros menu toggle button\n- [ ] Weather widget\n- [ ] Settings description\n- [ ] Redirect button\n- [x] Force search engine on \u003ckbd\u003eCtrl\u003c/kbd\u003e\n- [ ] Fix transition animations\n- [ ] Macros and Commands editor\n- [ ] Macros Menu categories\n- [ ] Localisation\n- [x] LocalStorage reset buttons\n- [ ] Refactor search engines system\n- [ ] Time settings\n\n## Technologies\n\n- [React](https://reactjs.org/)\n- MUI ([Joy UI](https://mui.com/joy-ui/getting-started/overview/))\n- [Framer-motion](https://www.framer.com/motion/)\n- [Splide](https://splidejs.com/)\n- [Vite](https://vitejs.dev/)\n\n\u003e \u003cfont size=2 color=grey\u003eJS, CSS, HTML, \u003ca href=\"https://github.com/Myndex/SAPC-APCA\"\u003eAPCA\u003c/a\u003e (from \u003ca href=\"https://colorjs.io/\"\u003ecolor.js\u003c/a\u003e)\u003c/font\u003e\n\n---\n\n\u003cp align=center\u003e\ninspired by \u003ca href=\"https://github.com/xvvvyz/tilde\"\u003eTilde\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkholmogorov27%2Fchevron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkholmogorov27%2Fchevron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkholmogorov27%2Fchevron/lists"}