poorcoder is a collection of lightweight Bash scripts designed to enhance your coding workflow with AI assistance. These tools bridge the gap between web-based AI interfaces and the terminal, allowing you to leverage subscription-based LLMs (such as Claude.ai or Grok) without interrupting your development flow.
Purpose and Positioning
poorcoder is designed for developers who use web-based LLM subscriptions while wanting to maintain a terminal workflow. Unlike IDE integration solutions (Cursor, aider, Claude Code, etc.), it does not rely on a dedicated API, but instead works with the web/mobile LLM subscriptions you already have, and is considered more economical than a dedicated API while preserving both the terminal development approach and the interactive experience of web/mobile LLMs. Its design follows the Unix philosophy, in which small, specialized tools each do their own job.
Main Capabilities (Four Core Tools)
-
context —— Code context generator: extracts relevant code context from a project so it can be sent to a web-based LLM.
-
apply-md —— Markdown code applier: extracts code blocks from Markdown (usually an LLM reply) and applies the changes to the filesystem.
-
git-context —— Git context generator: generates git-related context to help the LLM write meaningful commit messages.
-
autocommit —— Automated AI commit message generator: uses git-context to automatically create commits with AI-generated commit messages. This script is a simple wrapper that uses git-context to collect change information, passes the context to the LLM via the llm CLI tool, performs git commit with the generated commit message, and opens an editor for you to review/edit the message before final confirmation. This script requires the llm CLI tool to be installed and a suitable LLM model to be configured.
Installation
Standard installation: clone this repository and make the scripts executable. You can use the scripts directly in that folder, or add them to your PATH for global access.
Project-specific installation (recommended): for frequent use, you can copy the scripts and the prompts directory directly into your project. This approach allows you to customize the scripts and prompts for a specific project workflow. You can also create custom aliases or wrapper scripts.
Usage and Workflow
poorcoder supports two main workflows:
- Web LLM workflow: suitable for complex interactions and making full use of your LLM subscription.
- LLM CLI workflow: suitable for quick operations or automation using LLM CLI tools.
Example scenario: Bug fixing in a complex project
-
Collect relevant context: ./context --include="src/utils/validation.js" --include="src/components/Form.js" | pbcopy
-
Paste into Claude.ai or Grok with the request: "Form validation fails when submitting an empty string; please fix it while preserving the existing validation approach."
-
Copy the AI's reply and apply the changes: pbpaste | ./apply-md --dry-run # Preview changes pbpaste | ./apply-md # Apply changes
-
Use autocommit to generate a commit message: ./autocommit # Automatically generate a commit message and open the editor
Integration with other tools
poorcoder can work with a variety of tools to form a seamless workflow:
- Web LLMs: Claude.ai, ChatGPT, Grok, etc.
- LLM CLI tools: llm, sgpt, chatgpt-cli, etc.
- Clipboard tools: pbcopy / pbpaste (macOS), xclip (Linux)
- Version control: git
Applicable scenarios and limitations
Applicable scenarios: developers who already have a web-based LLM subscription, prefer a terminal workflow, and want to avoid the high costs of dedicated APIs; daily development tasks that require extracting project context, applying code changes generated by an LLM, and generating AI commit messages.
Limitations: the repository materials do not specify particular requirements for operating system, shell version, specific LLM model, or pricing. autocommit explicitly depends on the installation and configuration of the llm CLI tool. Complete documentation, parameter details, and dependency information for the remaining scripts are not provided in the materials; it is recommended to consult the full documentation for each tool in the repository.
License and contributions
The project uses The Unlicense (public domain) license. Pull request or issue to suggest improvements.