hey/README.md

56 lines
2.2 KiB
Markdown

# hey!
`hey` is a command line tool to contact DuckDuckGo Chat API from your terminal.
based on [this article](https://blek.codes/blog/duckduckgo-ai-chat/)
demo:
<p align=center><img src='hey-demo.gif' alt='a gif demostrating a prompt about a bedtime story' width=1000></p>
# disclaimer
to clarify, as of may 17 2024, using a third party client [does not violate the ToS](https://duckduckgo.com/aichat/privacy-terms).
by using this client, you acknowledge that you will be liable for any ToS violations as per GPLv3
this project is not intended for API scraping purposes, and actually [has a soft protection against it](https://git.blek.codes/blek/hey/src/branch/main/src/main.rs#L34).
# installation
if you run linux or macos,
```sh
git clone https://git.blek.codes/blek/hey.git
cd hey
cargo b -r
sudo cp target/release/hey /usr/bin/hey,
```
if you are on windows, [download the binary file](#download-the-binary-file) or compile it yourself if you have the knowledge
## via a package manager
arch (AUR) - `paru -S hey-duck`
## download the binary file
prebuilt binaries are available on [the releases page](https://git.blek.codes/blek/hey/releases) for macOS, Linux and Windows
## development version
look around [on github actions](https://github.com/b1ek/hey/actions), select the latest one, scroll all the way down and then download an artifact for your platform
### note for packagers
to avoid name conflicts, packages should be named `hey-duck` or its form in a different naming convention.
please submit an issue or a PR if you have packaged this to a distro, or email one of the maintainers.
# configuration & cache
there is a config file in `~/.config/hey/conf.toml` and a cache file in `~/.cache/hey/cache.json`
you can set their paths and filenames via `HEY_CONFIG_PATH`, `HEY_CONFIG_FILENAME` and `HEY_CACHE_PATH`, `HEY_CACHE_FILENAME`.
## config file reference
```toml
model = "Claude" # or "GPT4OMini"
tos = false # whether if you agree to ddg chat tos
```
## cache file reference
cache file stores the last VQD used. it is (probably) there so that the ai model would remember your history. [read more about duckduckgo chat api](https://blek.codes/blog/duckduckgo-ai-chat/)
if you want to reset the VQD, just delete the file.