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, or DeepSeek).

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:

Terminal
$ ducktape
Welcome to DuckTape! How can I assist you today?
$ schedule a meeting with John tomorrow at 2pm
Creating calendar event "Meeting with John" for tomorrow at 2:00 PM...
Event created successfully!
$ |

Next Steps

Explore Calendar Commands

Learn how to create, edit, and manage calendar events using both natural language and CLI commands.

Read more

Set Up Reminders

Create and manage reminders with natural language prompts and stay on top of your tasks.

Read more

Zoom Integration

Learn how to add Zoom meetings to your calendar events automatically.

Read more