mirror of
https://github.com/anotherhadi/iknowyou.git
synced 2026-04-12 00:47:26 +02:00
47 lines
1.4 KiB
Markdown
47 lines
1.4 KiB
Markdown
# Contributing
|
|
|
|
Contributions are welcome: new tool integrations especially.
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch: `git checkout -b feat/my-tool`
|
|
3. Implement your tool
|
|
4. Open a pull request
|
|
|
|
Please ensure your tool handles context cancellation, respects rate limits, and declares the correct input types. Document any required API key or external binary dependency.
|
|
|
|
## Development
|
|
|
|
### Prerequisites
|
|
|
|
- [Go 1.25+](https://go.dev/dl/)
|
|
- [Bun](https://bun.sh)
|
|
- [Just](https://github.com/casey/just)
|
|
|
|
Or you can use the Nix Shell by typing `nix develop`
|
|
|
|
### Run locally
|
|
|
|
```bash
|
|
git clone https://github.com/anotherhadi/iknowyou.git
|
|
cd iknowyou
|
|
|
|
just dev
|
|
```
|
|
|
|
Open [http://localhost:4321](http://localhost:4321).
|
|
|
|
The backend listens on `:8080` by default. Configure via environment variables:
|
|
|
|
| Variable | Default | Description |
|
|
| ------------ | ------------- | ---------------------------- |
|
|
| `IKY_PORT` | `8080` | HTTP port |
|
|
| `IKY_CONFIG` | `config.yaml` | Path to the YAML config file |
|
|
|
|
## Adding a Tool
|
|
|
|
1. Create `back/internal/tools/mytool/mytool.go` implementing `tools.ToolRunner`
|
|
2. Optionally implement `tools.Configurable` + `tools.ConfigDescriber` for config UI support
|
|
3. Optionally implement `tools.AvailabilityChecker` if the tool requires an external binary
|
|
4. Register in `back/cmd/server/main.go` and `back/cmd/gendocs/main.go`
|
|
5. Run `just docs` to update the docs
|