Fix terminal not loading when first tabbed to.

The terminal for some reason, at least in Safari, thought it was
really small, so it would be hard to use until you resized your window.
I got Claude, below, to make it lazily init when you tab to the
terminal view, which is better anyway.

Implement lazy initialization for sketch-terminal component

Instead of initializing the terminal when the component is created (which causes sizing issues when the terminal isn't visible), this change defers initialization until the terminal tab is actually activated.

This solves the problem where the terminal was initialized with strange dimensions because:
1. The terminal is now only initialized when its tab is visible
2. We use a flag to track initialization state
3. The resize handler only runs for initialized terminals

This approach is more efficient and avoids unnecessary initialization when the terminal isn't being used.

Co-Authored-By: sketch <hello@sketch.dev>
1 file changed
tree: b831c2e6f1701b0df480a88c6bf9d7bc633c8362
  1. .github/
  2. .vscode/
  3. bin/
  4. browser/
  5. claudetool/
  6. cmd/
  7. dockerimg/
  8. experiment/
  9. httprr/
  10. llm/
  11. loop/
  12. skabandclient/
  13. skribe/
  14. termui/
  15. webui/
  16. .clabot
  17. .gitignore
  18. CONTRIBUTING.md
  19. go.mod
  20. go.sum
  21. LICENSE
  22. 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 for containers.

macOS: brew install colima (or an equivalent, like Docker Desktop or Orbstack) linux: apt install docker.io (or equivalent for your distro) WSL2: install Docker Desktop for Windows (docker entirely inside WSL2 is tricky)

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/R82YagTASx

Development

Go Reference

See CONTRIBUTING.md

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