# Sketch

Sketch is an agentic coding tool focused on the Go programming language.
Sketch runs in your terminal, has a web UI, understands your code, and helps you get work done.
To keep your environment pristine, sketch starts a docker container and outputs
its work onto a branch in your host git repository.

To get started:

```sh
go install sketch.dev/cmd/sketch@latest
sketch
```

## Requirements

Currently sketch only runs on macOS.
It uses docker/colima (installable via homebrew) for containers.

The [sketch.dev](https://sketch.dev) service is used to provide access
to an LLM service and give you a way to access the web UI from anywhere.

## Feedback/discussion

We have a discord server to discuss sketch.

Join if you want! https://discord.gg/2xG3KEG3

## Open Source

Sketch is open source.
It is right here in this repository!
Have a look around and mod away.

If you want to run sketch entirely without the sketch.dev service, you can
set the flag -skaband-addr="" and then provide an ANTHROPIC_API_KEY
environment variable. (More LLM services coming soon!)
