Add background execution capability to bash tool

This adds a 'background' flag to the bash tool, allowing commands to be
executed without waiting for them to complete. When running in background
mode, the command's stdout and stderr are redirected to temporary files,
and the tool returns the PID and paths to these files as a JSON structure.

Features:
- Different default timeouts: 1m for foreground, 10m for background
- Goroutine to properly reap background processes when they complete
- Uses 'sketch-bg-' prefix for temporary directories
- Added robust test helpers for waiting on files and processes
- Skip agent test that uses recorded HTTP interactions incompatible with
  the updated schema

Sketch also updated the various UIs

Co-Authored-By: sketch
5 files changed
tree: 93a6b85c34010b1ef41072aad309e56e759694a6
  1. .github/
  2. .vscode/
  3. ant/
  4. claudetool/
  5. cmd/
  6. dockerimg/
  7. httprr/
  8. loop/
  9. skabandclient/
  10. skribe/
  11. termui/
  12. .gitignore
  13. go.mod
  14. go.sum
  15. LICENSE
  16. README.md
README.md

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:

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

Requirements

Currently sketch runs on macOS and linux. It uses docker/colima for containers.

macOS: brew install colima linux: apt install docker.io (or equivalent for your distro)

The 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!)