DuckTape Documentation
Get up and running with DuckTape in just a few minutes. This guide will walk you through installation, configuration, and basic usage.
Installation
Install DuckTape using Homebrew:
brew install ducktapeai/ducktape/ducktape
Configure Environment Variables
DuckTape requires API keys for at least one of the supported AI providers. Also you can set your .env file with the relevant environment variables.
Required for AI Language Models:
Choose at least one of the following AI providers:
# For OpenAI
export OPENAI_API_KEY='your-openai-api-key-here'
# For Grok (XAI)
export XAI_API_KEY='your-xai-api-key-here'
# For DeepSeek
export DEEPSEEK_API_KEY='your-deepseek-api-key-here'
Configuration with config.toml
DuckTape uses a config.toml
file located in the root of the repository to manage its settings. This file allows you to configure various aspects of the application, such as whether to use a language model (LLM) or operate in Terminal Mode.
Example Configuration
[language_model]
provider = "OpenAI" # Options: "OpenAI", "Grok", "DeepSeek", or leave empty for Terminal Mode
[calendar]
default_calendar = "Work"
default_reminder_minutes = 15
default_duration_minutes = 60
[reminder]
default_list = "Reminders"
default_reminder = true
[notes]
default_folder = "Notes"
Switching Between Modes
To switch between Terminal Mode and Natural Language Mode, update the provider
field under the [language_model]
section:
- Terminal Mode: Leave the
provider
field empty. - Natural Language Mode: Set the
provider
field to one of the supported AI providers (e.g.,OpenAI
,Grok
, orDeepSeek
).
Viewing and Editing Configuration
To view the current configuration, open the config.toml
file in the root of the repository. To change settings, edit the file and save your changes.
Key Settings
- Language Model Provider: Set the
provider
field under[language_model]
to enable natural language processing. Leave it empty to use Terminal Mode. - Default Calendar: Specify the default calendar for events under
[calendar]
. - Default Reminder List: Set the default list for reminders under
[reminder]
. - Default Notes Folder: Define the folder for notes under
[notes]
.
Try It Out
Let's try a simple natural language command: