Skip to content

A CLI tool that provides useful engineering functionality for interacting with a variety of LLM providers to improve and streamline common tasks.

License

Notifications You must be signed in to change notification settings

commoddity/devint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

╔═════════════════════════════════════════════════════╗
β•‘                                                     β•‘
β•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β•‘
β•‘   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β•šβ•β•β–ˆβ–ˆβ•”β•β•β•   β•‘
β•‘   β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘      β•‘
β•‘   β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘      β•‘
β•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘      β•‘
β•‘   β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•  β•šβ•β•β•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•β•   β•šβ•β•      β•‘
β•‘                                                     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ’» Developer Interface

Developer toolkit powered by multi-provider LLM integration.

devint chat introduction

Introduction to the Developer Interface

Table of Contents

πŸš€ Quickstart

Dependencies

  • Go (version 1.21 or later)

Installation

Install devint using Go's install command:

go install github.com/commoddity/devint@latest

To verify the installation:

devint --version

First-Time Setup

When you run devint for the first time, it will automatically launch an interactive setup prompt that guides you through configuration.

Click to see the values the setup wizard will ask you to configure
  1. Git Configuration (required):

    • GitHub Personal Access Token (PAT) with at least write:repo scope
    • GitHub repository owner (organization or username)
    • Optional: PR summary output directory
    • Optional: Company name to filter from diffs
  2. LLM Provider Configuration (required):

    • Default LLM provider (choose from DeepSeek, OpenRouter, or Thaura)
    • API key for your chosen provider
    • Default model for your provider
    • Optionally configure additional providers

Simply run any devint command to trigger the first-time setup:

devint chat

The wizard will guide you through each step with clear prompts and helpful descriptions.

Running Your First Command

Once setup is complete, try a one-shot query:

devint chat "Can you explain Manifest Destiny in simple terms?"

That's it! You're ready to use the Developer Interface. πŸŽ‰

πŸ“– Overview

The Developer Interface (devint) is a command-line tool designed to streamline developer workflows. devint helps developers quickly perform routine operations and maintain consistency across projects.

devint integrates with multiple Language Model (LLM) providers to power intelligent features like automated PR creation, code summarization, and more. The tool provides a unified interface for interacting with various LLM providers, making it easy to switch between different models and services.

Key features include:

  • πŸ“‘ Multi-Provider LLM Support: Seamlessly switch between Thaura, DeepSeek, and OpenRouter
  • πŸ”§ Git Automation: Automated git tasks for streamlining your workflow
  • βš™οΈ Flexible Configuration: Easy-to-use YAML-based configuration system
  • 🎯 Developer-Focused: Built for developers who want to automate routine tasks
  • πŸ’¬ Live Chat: Interact with AI models in real-time from your terminal

βš—οΈ Providers

devint supports multiple LLM providers. You can configure one or more providers and switch between them as needed.

Provider Website Description Models
πŸ‡΅πŸ‡ΈΒ Thaura thaura.ai Ethical AI platform from Tech for Palestine thaura
πŸ‹Β DeepSeek deepseek.com High-performance AI models for coding and reasoning deepseek-chat, deepseek-reasoner
🌍 OpenRouter openrouter.ai Unified API for accessing AI models See openrouter.ai/models

πŸ‡΅πŸ‡Έ Thaura

Thaura Logo

Thaura is an AI platform that combines technical excellence with ethical principles,
designed to support Palestinian liberation and mission-aligned technology development.


Ethical Principles:

  • Mission-Aligned Technology: Supports projects and organizations working towards Palestinian liberation
  • Transparent Operations: Clear documentation and open communication about platform capabilities
  • Ethical AI Development: Committed to responsible AI practices that prioritize fairness and accountability
  • Community-Driven: Built in collaboration with the Tech for Palestine community

For API documentation, see thaura.ai/api-platform

πŸ‡΅πŸ‡Έ Tech for Palestine

Tech for Palestine (T4P) is a coalition of founders, engineers, product marketers, investors, and other professionals working in support of Palestinian liberation.

What is Tech for Palestine?

Tech for Palestine is first and foremost an incubator for advocacy projects. They rally volunteers from across the tech world β€” founders, engineers, marketers, investors, and more β€” all committed to Palestinian liberation.

The T4P Incubator helps pro-Palestine advocates build, grow, and scale their work towards a Free Palestine. They support projects β€” whether collections of individuals, registered non-profits, or even companies β€” whose mission helps Palestine, especially advocacy groups building technical products or in the tech space.

The Incubator is free and provides:

  • πŸ‘₯ Volunteers - Access to skilled professionals
  • πŸ“’ Marketing Support - Help spreading your message
  • πŸŽ“ Mentorship - Guidance from experienced professionals
  • πŸ”— Connections - Links to the broader Palestinian advocacy ecosystem

Get Involved:

  • Volunteer your skills
  • Join their Discord
  • Start a project of your own
  • Be a mentor
  • Hire Palestinians

Learn more at techforpalestine.org

πŸ‹ DeepSeek


DeepSeek provides powerful AI models optimized for coding and reasoning tasks. DeepSeek models are known for their excellent performance in technical contexts.

Available Models:

  • deepseek-chat - General-purpose chat model
  • deepseek-reasoner - Advanced reasoning model

🌍 OpenRouter


OpenRouter is a unified API that provides access to multiple AI models from various providers. It offers flexibility and choice, allowing you to use different models through a single interface.

Available Models: OpenRouter accepts any model string. You can use any model available on OpenRouter's platform.

See openrouter.ai/models for the full list of available models.

πŸ’° Cost Tracking

The Developer Interface automatically tracks and displays the cost of LLM API usage for supported providers. Cost tracking is available for:

Costs are calculated based on token usage (input and output tokens) and displayed with 4 decimal places (1/100th of a cent precision). Pricing is model-specific and stored per provider, ensuring accurate cost calculations.

πŸ’¬ Interactive Chat

The devint chat command supports two modes of operation:

⚑ One-Shot Mode

devint chat one-shot mode

One-shot mode with streaming response

Send a single prompt and receive a response directly in your terminal.

# Using the default provider
devint chat "Who is Captain Ibrahim Traore?"

# Override the provider
devint chat -p thaura "Tell me about the history of Brazilian music."

# Override the model
devint chat -p deepseek -m deepseek-reasoner "Help me build a complex system of philosophical development based on Marxist theory."

πŸ’­ Interactive Mode

devint chat interactive mode

Interactive mode with streaming responses and full conversation context

Start an interactive chat session in a terminal UI that preserves conversation context throughout the session:

devint chat

πŸ“‹ Command Reference

Flag Type Required Description
[prompt] string ❌ Prompt to send to the LLM (if omitted, starts interactive mode)
--provider-override (-p) string ❌ LLM provider override. Sets the LLM provider only for this request
--model-override (-m) string ❌ LLM model override. Sets the LLM model only for this request

πŸ”§ Git Commands

The Developer Interface provides Git automation commands that leverage LLMs to streamline your Git workflow.

devint git createpr

Automatically generates a comprehensive PR description from your git diff using an LLM and creates the PR on GitHub. This command eliminates the tedious task of manually writing PR descriptions by analyzing your code changes, commit history, and PR title to produce a well-structured description with primary and secondary changes.

πŸ› οΈ Use Cases:

  • Save Time: Generate professional PR descriptions in seconds instead of spending minutes writing them manually
  • Consistency: Ensure all PRs follow a consistent format and structure across your team
  • Context Awareness: The LLM analyzes your diff, commits, and title to understand the "why" behind changes
  • Quality: Automatically detects and highlights TODOs, primary functional changes, and secondary improvements

πŸ’΄ Value: Reduces PR creation time from 5-10 minutes to under 30 seconds while improving description quality and consistency. Particularly valuable for teams that maintain high PR standards but want to reduce manual overhead.

Flag Type Required Description
--pr-title (-t) string βœ… PR title. Will open a draft PR if the string contains [DRAFT] or [WIP]
--target-branch (-b) string ❌ Target branch (default "main")
--issue (-i) int ❌ Issue number
--dummy (-d) bool ❌ Dummy mode. Will print summary to console and clipboard but not open a PR on GitHub
--provider-override (-p) string ❌ LLM provider override. Sets the LLM provider only for this request
--model-override (-m) string ❌ LLM model override. Sets the LLM model only for this request

devint git summarizepr

Generates an educational summary of a pull request by analyzing the PR diff with an LLM. The summary explains the rationale behind changes, highlights best practices, identifies potential issues, and provides learning insights. Perfect for code reviews, onboarding, and knowledge sharing.

πŸ› οΈ Use Cases:

  • Code Review Preparation: Quickly understand complex PRs before reviewing, especially when working with unfamiliar codebases or languages
  • Learning & Onboarding: Learn from existing PRs by understanding why changes were made and what patterns they demonstrate
  • Quality Assurance: Get an LLM-powered second opinion on PRs, catching potential bugs, pitfalls, or optimization opportunities

πŸ’΄ Value: Transforms PRs from code changes into educational resources. Instead of just seeing "what" changed, you understand "why" and "how" with context about best practices and potential issues. Saves time doing manual analysis and helps maintain institutional knowledge.

Flag Type Required Description
--pr-number (-p) int βœ… Pull request number to summarize
--repo-owner (-r) string ❌ GitHub repository owner override. If set, overrides the repo_owner from config

πŸ’‘ Note: The pr_summary_output_dir must be set in your git_config (via devint config) for this command to work.

βš™οΈ Configuration

Manage your Developer Interface configuration through the devint config command or by directly editing the configuration file.

devint config

Flag Type Required Description
--show (-s) bool ❌ Show the configuration
--editor (-e) string ❌ Edit the configuration in the given text editor, for example nano or vim

To run the interactive editor, run without any flags, ie. devint config.

Configuration File

The configuration is done through a config YAML file located at ~/.devint.config.yaml.

An example configuration file can be found at config/examples/.config.example.yaml.

git_config:
  personal_access_token: github_pat_1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f7g8h9i0j
  repo_owner: your-github-org-or-username
llm_config:
  default_llm_provider: deepseek
  llm_providers:
    deepseek:
      api_key: "your-deepseek-api-key"
      client_model: "deepseek-chat"
    openrouter:
      api_key: "your-openrouter-api-key"
      client_model: "deepseek/deepseek-chat"
    thaura:
      api_key: "your-thaura-api-key"
      client_model: "thaura"

πŸ“ TODOs

Development notes to improve the Developer Interface:

  • Update interactive Config interface to use github.com/rivo/tview
  • Update interactive Config interface to log out OpenRouter models
  • Add comprehensive table-driven tests for all packages
  • Implement cost tracking for OpenRouter (requires per-model pricing lookup from OpenRouter API or pricing data source)

🧠 Additional GitHub Automation Ideas

🧠 Potential commands that could leverage LLMs to automate common GitHub workflows:

  • devint git reviewpr: Generate a code review checklist and suggestions for a PR, analyzing the diff for potential bugs, security issues, performance concerns, and code quality improvements
  • devint git explaincommit: Explain what a specific commit does in plain language, useful for understanding complex changes or historical commits
  • devint git generatechangelog: Analyze PRs merged since last release and generate a formatted changelog entry with categorized changes (features, fixes, breaking changes, etc.)
  • devint git suggestlabels: Analyze PR title, description, and diff to suggest appropriate GitHub labels (e.g., bug, feature, documentation, breaking-change)
  • devint git explainissue: Summarize and explain GitHub issues, breaking down complex problem descriptions into actionable insights
  • devint git suggestreviewers: Analyze PR changes and suggest appropriate code reviewers based on file paths, languages, and change patterns
  • devint git generatecommitmessage: Generate conventional commit messages from staged changes, useful for maintaining consistent commit history
  • devint git analyzerelease: Compare two releases/tags and generate a comprehensive release notes document with categorized changes
  • devint git explaindiff: Explain any arbitrary git diff in plain language, useful for understanding changes between branches or commits
  • devint git suggestprtitle: Generate a descriptive PR title based on the diff and commit messages

About

A CLI tool that provides useful engineering functionality for interacting with a variety of LLM providers to improve and streamline common tasks.

Resources

License

Stars

Watchers

Forks

Packages

No packages published