# Contributing to openrouter-ai-sdks Thanks for helping. This is short because the rules are short. ## Setup ```bash git clone git@github.com:Tisankan-dev/openrouter-ai-sdks.git cd openrouter-ai-sdks npm install npm test ``` ## Before opening a pull request ```bash npm test ``` Everything must pass. If the package has a lint or build step, run that too. ## What is expected **Keep it readable by someone on their second day.** Plain names, small functions, no clever chains, no abstraction added before there are three real cases for it. Comment why, never what. **New behaviour comes with a test that would fail without it.** A test that passes whether or not the feature works is worse than no test, because it reads as proof. **Do not add a dependency without a reason you can state in one sentence.** Every dependency is code running with your users' privileges. Several of these packages have zero on purpose. **Breaking changes need a migration note in the changelog.** Show the before and the after, not just the fact that something moved. ## Good first contributions - Add streaming completion support - Add typed model listings - Add retry with backoff on rate limits ## Commit messages Lowercase imperative subject, `type(scope): what changed`, and a body explaining **why**. No emojis, no em-dashes, no AI attribution trailers. ## Reporting problems - [Report a bug](https://github.com/Tisankan-dev/openrouter-ai-sdks/issues/new) - Security issues go through [SECURITY.md](SECURITY.md), privately ## License Contributions are licensed under the [MIT License](LICENSE). --- Maintained by [Tisankan Jeyakumar](https://tisankan.dev), CTO at [Yarl Ventures](https://yarlventures.com). Questions: **hello@tisankan.dev**