A year ago, many developers were asking Which AI model should I use?
Today, the better question is How do I build a development workflow around AI models?
Because the model is only one piece of the puzzle. Modern developers also need to think about model routing, local inference, AI coding agents, agent ecosystems, data analysis, cost, portability, and developer productivity.
That is why open-source repositories have become so interesting.
For Week 17 of my Open Source GitHub Repository Series, I explored five repositories that sit at very different layers of the modern developer stack:
LiteLLM β One interface for 100+ LLM providers
llama.cpp β Run LLMs locally across a wide range of hardware
Gemini CLI β Bring an AI coding agent directly into the terminal
Awesome DeepSeek Agent β Discover and configure DeepSeek across popular agent tools
DuckDB β Run fast analytical SQL directly where your data lives
What makes this list interesting is the bigger picture.
These repositories are not just tools. Together, they describe how developer workflows are changing.
Letβs dive in.
1. LiteLLM: The AI Gateway Every Multi-Model Application Needs
Repository: BerriAI/litellm
What isΒ LiteLLM?
Imagine your application starts with OpenAI. Then your team wants Anthropic. Then Gemini becomes cheaper for a particular workload. Then you want an open-source model running through vLLM.
Suddenly, your codebase has multiple SDKs, authentication mechanisms, request formats, response formats, error-handling strategies, and provider-specific edge cases.
That is exactly the problem LiteLLM is designed to simplify.
LiteLLM is an open-source AI Gateway that provides a unified interface for calling 100+ LLM providers, including OpenAI, Anthropic, Gemini, Azure, Bedrock, Vertex AI, vLLM, and others. It can be used as a Python SDK or deployed as a centralized proxy/gateway for a team or organization.
Think of it as:
βAn API abstraction layer for the rapidly changing LLM world.β
Instead of rewriting application logic every time you change models, you can keep your application interface relatively stable.
Why developers shouldΒ care
The real value is not simply βone API.β It is reducing coupling between your application and your model providers.
LiteLLMβs project highlights capabilities such as a unified interface, OpenAI compatibility, virtual keys, spend tracking, guardrails, load balancing, and logging.
That becomes extremely useful when your application moves from experimentation into production.
For example, your architecture can evolve from:
Application β OpenAI
to:
Application β LiteLLM β OpenAI / Anthropic / Gemini / Local Models
Now the model provider becomes something you can change behind the gateway rather than something deeply embedded throughout your codebase.
Where it fits in the development cycle
During development: quickly test different models without rewriting your integration layer.
During testing: compare models for quality, latency, or cost.
During staging: route workloads to different providers.
In production: add centralized controls around model access, routing, spend, and operational policies.
A simpleΒ example
A Python application can use LiteLLMβs SDK and keep the calling pattern consistent while changing the underlying provider.
The bigger lesson is architectural: Donβt let your business logic become tightly coupled to a model provider.
Productivity impact
LiteLLM can reduce the amount of provider-specific integration code developers have to maintain.
That means:
less SDK switching
less duplicated integration logic
easier model experimentation
easier provider migration
more centralized operational control
The productivity win is not calling more models. It is changing models without changing your entire application.
2. llama.cpp: Run LLMs Where Your Application ActuallyΒ Lives
Repository: ggml-org/llama.cpp
There is another side of the AI story. Not every developer wants to send every prompt to a cloud API. Sometimes you want local inference.
That is where llama.cpp becomes extremely interesting.
What is llama.cpp?
At its core, llama.cpp is a C/C++ implementation for LLM inference designed to run with minimal setup and high performance across a wide range of hardware. The project supports CPU, GPU, Apple Silicon, CUDA, Vulkan, Metal, and other backends, along with multiple quantization formats and CPU+GPU hybrid inference.
And importantly, you do not necessarily need a giant GPU server.
You can run models locally on hardware ranging from a developer laptop to systems with dedicated accelerators.
The project also provides a CLI and an OpenAI-compatible server interface, making it useful not just for experimentation but for integrating local inference into applications.
Why this matters to developers
Think about the development workflow of a typical AI application.
You may be sending thousands of requests to an external API while debugging prompts, testing agents, or iterating on application logic.
That can create:
API costs
network dependencies
privacy concerns
rate limits
latency variability
Local inference changes the equation.
For example, you can download a compatible model and run it directly:
llama cli -hf ggml-org/Qwen3.5-0.8B-GGUFOr expose it as an OpenAI-compatible API:
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUFThe repository documents both workflows.
Where it fits in the development cycle
Local development: experiment without constantly calling cloud APIs.
Prototyping: build AI features with local models.
Privacy-sensitive workloads: keep certain workloads closer to the machine.
Edge applications: explore inference outside centralized cloud infrastructure.
Hybrid architectures: use local inference for smaller workloads and cloud models for more demanding ones.
The productivity impact
llama.cpp gives developers another important capability control over where inference happens.
And that matters more as AI moves beyond chatbots into developer tools, desktop applications, edge devices, and embedded workflows.
The biggest productivity gain is experimentation. You can test ideas locally, quickly, and repeatedly without treating every prompt as a billable API request.
Cloud AI gives you convenience. Local inference gives you control. Modern developers increasingly need both.
3. Gemini CLI: Your Terminal Is Becoming an AI Workspace
Repository: google-gemini/gemini-cli
For decades, the terminal has been one of the most productive tools a developer can use.
We inspect files there.
We run tests there.
We build applications there.
We deploy applications there.
Now AI agents are moving there too.
What is GeminiΒ CLI?
Gemini CLI is an open-source AI agent designed to bring Gemini directly into the terminal. It supports file operations, shell commands, web fetching, Google Search grounding, MCP integrations, context files, checkpointing, and other developer-oriented capabilities.
This is an important distinction.
It is not simply βChat with an AI from your terminal.β The more interesting idea is βGive an AI agent access to the environment where developers already work.β
Why developers shouldΒ care
Suppose you are inside a large repository.
Instead of manually jumping between an editor, browser, documentation, shell, Git history, and terminal commands, you can ask the agent to work with the project context.
For example:
geminiThen:
Explain the architecture of this codebase.Or use non-interactive mode:
gemini -p "Explain the architecture of this codebase"Gemini CLI also supports structured output modes for scripting and automation, which makes it more interesting for developer workflows than a simple interactive chatbot.
Where it fits in the development cycle
Project onboarding: understand an unfamiliar repository faster.
Implementation: generate or modify code.
Debugging: inspect files, logs, and failures.
Testing: ask the agent to run tests and investigate failures.
Automation: use non-interactive commands inside scripts and workflows.
Documentation: summarize architecture, modules, or changes.
Agent workflows: connect additional capabilities through MCP.
Gemini CLI also supports persistent project context through files such as GEMINI.md, which lets teams provide reusable instructions and context to the agent.
The productivity impact
The biggest shift is not faster code generation, it is reducing context switching.
A developer can increasingly move from:
Understand β Search β Edit β Run β Debug β Document
toward:
Ask β Inspect β Change β Verify
with the terminal acting as the common workspace.
The terminal is no longer just where we tell computers what to do. It is becoming where we collaborate with AI agents.
π‘ Enjoying this article?
Every week day, I publish practical, production-ready deep dives covering Web development, System Design, Open source projects, Tech industry trends and AI Engineering and tools.
4. Awesome DeepSeek Agent: A Map of the AI Coding Agent Ecosystem
Repository: deepseek-ai/awesome-deepseek-agent
This repository is different from the others. It is not primarily an inference engine, database, or agent runtime.
It is a curated map.
What is Awesome DeepSeekΒ Agent?
The project is a curated collection of guides showing how to integrate DeepSeek models into popular AI agents and coding-assistant tools. The guides cover installation, configuration, and first-run workflows.
And the list is surprisingly broad.
It includes tools such as:
Claude Code
Cline
Codex
GitHub Copilot
GitHub Copilot CLI
Crush
Deep Code
DeepSeek-TUI
Hermes
Kilo Code
OpenCode
Pi
Qwen Code
and several others.
Why does a curated listΒ matter?
Because the AI coding-tool ecosystem is moving incredibly fast.
Every few weeks, developers encounter:
another coding agent
another terminal assistant
another MCP-enabled tool
another model provider
another way to configure local or hosted inference
Finding a useful tool is one challenge.
Understanding how to actually wire the model into that tool is another.
That is where this repository is useful.
Instead of starting from a blank terminal and searching through fragmented documentation, developers can use the guides as starting points for configuring DeepSeek with different agent environments.
Where it fits in the development cycle
Tool selection: discover AI coding assistants you may not have tried.
Experimentation: compare different agent experiences.
Developer onboarding: help team members configure supported tools.
Model experimentation: evaluate DeepSeek across different agent environments.
AI workflow design: understand how models and agent runtimes fit together.
The productivity impact
The value here is discovery speed. You donβt have to invent the integration workflow yourself every time.
It also encourages a useful engineering habit separate the model from the tool that uses the model.
Your coding agent is one layer.
Your model provider is another.
Your MCP tools, skills, context, and workflows are additional layers.
Once you start thinking in those layers, the AI developer ecosystem becomes much easier to understand.
Sometimes the most useful open-source repository isnβt the tool you run. Itβs the map that helps you discover the tools you should run next.
5. DuckDB: The Database You Can Put Next to YourΒ Code
Repository: duckdb/duckdb
At first glance, DuckDB might look like the odd one out in an AI-focused list. It isnβt, because modern AI development produces data everywhere.
Logs.
Evaluation results.
Model outputs.
CSV files.
Parquet datasets.
Benchmarks.
Experiment results.
Analytics data.
And developers constantly need to inspect and analyze that data.
What isΒ DuckDB?
DuckDB is a high-performance analytical, in-process SQL database designed to be fast, portable, reliable, and easy to use.
It supports advanced SQL features including window functions, nested and correlated subqueries, arrays, structs, maps, and other complex types. It also integrates with Python, R, Java, WebAssembly, pandas, and other tools.
The feature I find particularly useful for developers is simple You can query files directly.
For example:
SELECT * FROM 'myfile.csv';or:
SELECT * FROM 'myfile.parquet';The repository documents direct querying of CSV and Parquet files without requiring you to build a traditional database ingestion pipeline first.
Why developers shouldΒ care
Imagine you have generated 500,000 rows of evaluation data.
A traditional workflow might look like:
CSV β ETL β Database β Tables β SQL
DuckDB can dramatically simplify that for local analytical workloads:
CSV / Parquet β SQL
That makes it incredibly useful for developer experimentation.
Where it fits in the development cycle
Data exploration: inspect datasets quickly.
AI evaluation: analyze model outputs and benchmark results.
Testing: query generated test data.
Local analytics: investigate application data without standing up another database.
Prototyping: perform analytical queries directly inside Python or other applications.
Performance analysis: investigate large datasets locally.
The productivity impact
DuckDB removes infrastructure from many small-to-medium analytical tasks.
You donβt always need:
a database server
a separate ETL system
a cloud warehouse
a complicated data pipeline
Sometimes you just need SQL.
And DuckDB gives developers a powerful way to use SQL directly against local analytical data.
The less infrastructure you need to start exploring an idea, the faster you can test the idea.
The Bigger Picture: These Five Repositories Tell OneΒ Story
At first glance, these repositories seem unrelated, but look at what happens when we put them together.
LiteLLM gives you a unified layer for accessing models.
llama.cpp gives you local model inference.
Gemini CLI gives you an AI agent inside the developer environment.
Awesome DeepSeek Agent gives you a map of the rapidly expanding coding-agent ecosystem.
DuckDB gives you a fast analytical engine for the data produced by those workflows.
Put differently:
Modern Developer Workflow
AI Applications
β
ββββββββ΄βββββββ
β LiteLLM β
β Model Accessβ
ββββββββ¬βββββββ
β
βββββββββββββββ΄ββββββββββββββ
β β
Cloud Models Local Models
β β
β llama.cpp
β
Gemini / OpenAI /
Anthropic / etc.
β
βββββββββββββββ¬ββββββββββββββ
β β
AI Agents Developer CLI
β β
DeepSeek Agent Gemini CLI
β
β
Evaluation Data
β
DuckDBThis is where modern AI engineering is heading, not toward a world where developers simply βuse ChatGPT.β
But toward a world where developers compose models + gateways + local inference + agents + tools + data + automation.
That is a very different development workflow.
Which Repository Should You TryΒ First?
That depends on your problem.
If your application calls multiple LLM providers, start with LiteLLM.
If you want to experiment with local LLM inference, explore llama.cpp.
If you spend most of your day in the terminal, try Gemini CLI.
If youβre exploring AI coding agents and DeepSeek integrations, browse Awesome DeepSeek Agent.
If youβre constantly analyzing CSV, Parquet, benchmark, or evaluation data, try DuckDB.
You donβt need to adopt all five. The point is to recognize the layer each repository solves.
Final Thoughts
This weekβs repositories reveal another major shift happening in software development.
We are moving from: βWhich model is best?β to βHow do I engineer the entire AI-powered development workflow?β
That means thinking about:
β
Model abstraction
β
Local inference
β
AI coding agents
β
Agent ecosystems
β
Data analysis
β
Developer productivity
β
Infrastructure and portability
And that is exactly why open-source projects matter. They let developers experiment with these ideas before they become standard infrastructure.
The most productive developer in the next generation may not simply be the person who knows the most programming languages.
It may be the person who knows how to assemble the right tools around the problem. These five repositories are worth having on that toolbox.
Stay tuned for Week 18 of the Open Source GitHub Repository Series.
More useful repositories. More practical engineering lessons.
Thank You forΒ Reading!
I hope you found it helpful and informative. If you have any questions or feedback, feel free to leave a comment below. Your support and engagement mean a lot to me.
