First off, thank you for considering contributing to this project! 🎉
- Code of Conduct
- Getting Started
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guide
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/agent-ai-typescript.git cd agent-ai-typescript - Add the upstream remote:
git remote add upstream https://github.com/tostechbr/agent-ai-typescript.git
- Check if the bug has already been reported in Issues
- If not, create a new issue using the bug report template
- Include as much detail as possible
- Open an issue using the feature request template
- Describe the feature and why it would be useful
- Be open to discussion
- Fix typos, clarify explanations, add examples
- Documentation improvements are always welcome!
- Look for issues labeled
good first issueorhelp wanted - Comment on the issue to let others know you're working on it
- Follow the pull request process below
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your API keys
# Run an example
npx tsx src/01-fundamentals/01-hello-llm.ts
# Type check
npm run typechecksrc/
├── 01-fundamentals/ # LLM basics
├── 02-tools/ # Tool calling
├── 03-langgraph-basics/ # LangGraph intro
└── ... # More modules
-
Create a branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes following the style guide
-
Test your changes:
npm run typecheck
-
Commit your changes with a clear message:
git commit -m "feat: add new example for streaming"We follow Conventional Commits:
feat:new featurefix:bug fixdocs:documentation onlyrefactor:code refactoringchore:maintenance tasks
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request on GitHub
-
Wait for review - maintainers will review your PR and may request changes
- Use TypeScript strict mode
- Prefer
constoverlet - Use meaningful variable names
- Add comments for complex logic
- Use kebab-case for files:
my-file-name.ts - Prefix with numbers for ordering:
01-hello-llm.ts
// ✅ Good
const fetchUserData = async (userId: string): Promise<User> => {
const response = await api.get(`/users/${userId}`);
return response.data;
};
// ❌ Avoid
const f = async (id: any) => {
return await api.get("/users/" + id);
};Feel free to open an issue with the question label if you have any questions!
Thank you for contributing! 🚀