I built Rulepack — a PKGBUILD-inspired package manager for coding agent rules & skills
▲ 2 r/devtools+2 crossposts

I built Rulepack — a PKGBUILD-inspired package manager for coding agent rules & skills

Hi,

I got tired of copy-pasting the same rules and skills across OpenCode, Cursor, Claude Code, GitHub Copilot, Windsurf, Gemini CLI, etc. So I built Rulepack.

It’s a declarative package manager where each rule/skill/agent is a YAML PKGBUILD descriptor. One source, multiple targets. You can create PKBUILDs manually or with help of your agent.

Quick workflow:

  bin/rulepack build                         # fetch sources & build platform artifacts                                                                                                                        
  bin/rulepack install --target opencode     # deploy with symlink/copy/inject/append                                                                                                                          
  bin/rulepack verify --target opencode      # detect drift                                                                                                                                                    
  bin/rulepack fix --target opencode         # repair drift                                                                                                                                                    
  bin/rulepack bump                          # check upstream git-sourced packages                                                                                                                             

Highlights:
• 14 supported agent platforms (user + project scope)
• Registry-driven translate/transform defaults (data/registry/platforms.yaml)
• Surgical installs, skill-bundle sub-skill selection, marker-based AGENTS.md append
• Upstream version tracking, transaction rollback, SHA256 checksums
• Ruby stdlib-only core, 357 tests, 0 failures

Repo: https://github.com/ozgurulukir/agent-rule-sync

Feedback, bug reports, and new platform/translator contributions are very welcome. If you maintain rules for more than one coding agent, this is the exact itch it scratches.

u/ozguru — 4 days ago
▲ 2 r/opencode+1 crossposts

[Resource] Stop AI context drift: Here's an "instruction - AGENTS.md" that makes your AI manage project files like a real Tech Lead.

Hi everyone,

I’d like to share the agents.md (global-user level) I’ve been using for a while now. There are more comprehensive setups like this, but this instruction/rule is very basic and really works great—as they say, “works like a charm.” As the context fills up, it might sometimes fail to follow the rule, but with a basic prompt like “_pm maintenance,” you can make all the necessary adjustments and keep working. If it doesn’t follow the rules, you can add _pm to the end of the prompt, like “plan a refactor _pm.” Please comment and share any improvements ideas. (check next message for content)

reddit.com
u/ozguru — 12 days ago
▲ 2 r/opencode+1 crossposts

[Showcase] opencode-agents-sync — auto-update your AGENTS.md after compaction

Hey all, I've been working on a plugin that keeps your project AGENTS.md fresh as sessions evolve.

Once auto compaction has finished, the plugin will send a dedicated prompt through the normal agent loop (with full tool access), allowing the LLM to read the AGENTS.md file, consolidate the new discoveries and edit the file directly. When you restart opencode with the continue '-c' option or start a brand new OpenCode session, the project-level AGENTS.md file will contain the latest changes.

What it does:

  • Fires after auto-compaction via experimental.compaction.autocontinue
  • LLM reads AGENTS.md, merges new info, removes duplicates, keeps it clean
  • Cascade prevention — won't loop on repeated compactions
  • Custom prompt template with hot reload (drop a file, no restart) to update AGENTS.md
  • Works with both OpenCode and MiMo Code

Install: symlink to plugins/ directory, done. Tested with OpenCode v1.14.48 and MiMo Code v0.1.0.

Repo: https://github.com/ozgurulukir/opencode-agents-sync

u/ozguru — 22 days ago

[Project] renAI: An open-source, async CLI tool to automatically rename and organize your digital library (PDFs, EPUBs, images, Office docs) using LLMs.

Hi everyone!

I wanted to share renAI, an open-source Python CLI tool I’ve been developing to solve a very common headache: organizing a chaotic library of digital books, PDFs, EPUBs, Office docs, and images.

Instead of dealing with cryptic, inconsistent filenames likedocument_draft_final_v2.pdf , renAI extracts key metadata (title, subtitle, author, year, category, and language) and renames/moves files into a structured hierarchy automatically.

It started as a simple script, then evolved to its current state. It solved a real problem for me, and I hope it will be useful for you too (don't forget to backup in any case! :) ), try cheap models or local LLMs first if you like and always monitor your API cost to prevent unnessary spendings, happy organizing.

🌟 Key Features

  • Dual Processing Modes:
    • Text Extraction Mode: Leverages fast extractors (PyMuPDF, pdfplumber, pypdf, or pypdfium2) to extract text, then queries LLMs to understand the document structure.
    • Flexible Fallback Strategies: If standard text extraction fails (e.g., scanned PDFs or image-only documents), renAI can automatically fall back to local OCR (Tesseract) or Vision- capable LLMs based on your configuration.
  • Broad Format Support:
    • Documents: .pdf , .epub , .mobi , .txt , .md
    • Office Documents: .docx , .doc , .pptx , .ppt , .xlsx , .xls
    • Images:.jpg , .jpeg , .png , .gif , .bmp , .webp , .tiff
  • Smart Two-Layer Cache: Uses SHA256-based caching for both extracted text and LLM metadata. You won't pay for API tokens twice if you re-run the tool or tweak your naming schema.
  • AsyncIO-First & Rate Limiting: Completely asynchronous execution with built-in Token Bucket Rate Limiting (RPM compliance) to handle thousands of files concurrently without getting rate-limited.
  • Flexible Provider Registry: Supports cloud providers (DeepInfra, OpenRouter, OpenAI) as well as local offline models (Ollama, LM Studio).
  • Clean Terminal Wizard: Runningrenai initguides you through choosing models, workers, and configuring multiple APIs with automatic real-time credentials validation.
  • Refinement Pass: Utilizes a standardized two-pass system. The first pass extracts raw metadata, and a second pass acts as a "Senior Editor" to clean and format the values before renaming.

🛠️ Tech Stack & Requirements

  • Python 3.12+
  • Package Management:uv (Hatchling build backend)
  • Linters & Formatters: Ruff & Pyright
  • OCR Fallback: Tesseract OCR (with OpenCV preprocessing)

📦 Installation & Getting Started

Getting started is simple:

Clone the repository

git clone https://github.com/ozgurulukir/renAI.git cd renAI

Install dependencies using uv

uv sync --all-extras

Run the interactive configuration wizard

uv run renai init

Run renai on a folder (evaluate mode checks output without modifying files)

uv run renai process "path/to/my/docs" --mode evaluate

Start renaming in place!

uv run renai process "path/to/my/docs" --mode rename

🔗 Project Links

I would love to hear your feedback, feature requests, or suggestions! Let me know if you run into any issues or have ideas to improve the renaming templates.

reddit.com
u/ozguru — 26 days ago
▲ 2 r/CLI+1 crossposts

[Project] renAI: An open-source, async CLI tool to automatically rename and organize your digital library (PDFs, EPUBs, images, Office docs) using LLMs.

Hi everyone!

I wanted to share renAI, an open-source Python CLI tool I’ve been developing to solve a very common headache: organizing a chaotic library of digital books, PDFs, EPUBs, Office docs, and images.

Instead of dealing with cryptic, inconsistent filenames likedocument_draft_final_v2.pdf , renAI extracts key metadata (title, subtitle, author, year, category, and language) and renames/moves files into a structured hierarchy automatically.

It started as a simple script, then evolved to its current state. It solved a real problem for me, and I hope it will be useful for you too (don't forget to backup in any case! :) )

🌟 Key Features

  • Dual Processing Modes:
  • Text Extraction Mode: Leverages fast extractors (PyMuPDF, pdfplumber, pypdf, or pypdfium2) to extract text, then queries LLMs to understand the document structure.
  • Flexible Fallback Strategies: If standard text extraction fails (e.g., scanned PDFs or image-only documents), renAI can automatically fall back to local OCR (Tesseract) or Vision- capable LLMs based on your configuration.
  • Broad Format Support:
  • Documents: .pdf , .epub , .mobi , .txt , .md
  • Office Documents: .docx , .doc , .pptx , .ppt , .xlsx , .xls
  • Images:.jpg , .jpeg , .png , .gif , .bmp , .webp , .tiff
  • Smart Two-Layer Cache: Uses SHA256-based caching for both extracted text and LLM metadata. You won't pay for API tokens twice if you re-run the tool or tweak your naming schema.
  • AsyncIO-First & Rate Limiting: Completely asynchronous execution with built-in Token Bucket Rate Limiting (RPM compliance) to handle thousands of files concurrently without getting rate-limited.
  • Flexible Provider Registry: Supports cloud providers (DeepInfra, OpenRouter, OpenAI) as well as local offline models (Ollama, LM Studio).
  • Clean Terminal Wizard: Runningrenai initguides you through choosing models, workers, and configuring multiple APIs with automatic real-time credentials validation.
  • Refinement Pass: Utilizes a standardized two-pass system. The first pass extracts raw metadata, and a second pass acts as a "Senior Editor" to clean and format the values before renaming.

🛠️ Tech Stack & Requirements

  • Python 3.12+
  • Package Management:uv (Hatchling build backend)
  • Linters & Formatters: Ruff & Pyright
  • OCR Fallback: Tesseract OCR (with OpenCV preprocessing)

📦 Installation & Getting Started

Getting started is simple:

Clone the repository

git clone https://github.com/ozgurulukir/renAI.git cd renAI

Install dependencies using uv

uv sync --all-extras

Run the interactive configuration wizard

uv run renai init

Run renai on a folder (evaluate mode checks output without modifying files)

uv run renai process "path/to/my/docs" --mode evaluate

Start renaming in place!

uv run renai process "path/to/my/docs" --mode rename

🔗 Project Links

I would love to hear your feedback, feature requests, or suggestions! Let me know if you run into any issues or have ideas to improve the renaming templates.

reddit.com
u/ozguru — 26 days ago
▲ 27 r/opencode+1 crossposts

[Showcase] opencode-fff-search: Supercharge OpenCode's file search & grep with Rust-powered fff 🚀

Hey everyone,

I wanted to share a plugin I built to optimize and speed up the file searching and grepping experience in OpenCode: opencode-fff-search https://github.com/ozgurulukir/opencode-fff-search.

It acts as a seamless, drop-in replacement that enhances (with limitations) OpenCode's search capabilities by integrating the fff https://github.com/dmtrKovalenko/fff Rust-powered search engine. Running directly via native C++/Rust bindings, it aims to provide a faster, smoother, and more typo-tolerant search workflow—especially when working on medium-to-large codebases.


⚡ Key Enhancements

Here is how the plugin optimizes the agent's search loops:

  1. Zero Process-Spawning Overhead: Instead of spawning a new shell process (like rg ) for every single search query, this plugin runs in-process via N-API. This eliminates the 15–50ms spawn delay per call, which adds up significantly during multi-step agent sessions.
  2. Fuzzy & Typo-Tolerant Globbing: Handles minor spelling mistakes in paths gracefully (e.g., matching eslint.config.mjs even if the agent queries eslit.config.mjs ), ensuring the agent doesn't miss relevant files due to minor syntax slips.
  3. Frecency Ranking (AI Mode): Backed by LMDB, it tracks which files you work on most frequently and recently. It bubbles up active files to the top of search results so the agent finds context faster.
  4. Sub-Millisecond In-Memory Index: Pre-filters file candidates in RAM using a bigram inverted index, dramatically reducing unnecessary disk I/O.

✨ Core Features

  • Smart Mode Detection: Automatically detects plain-text (literal) vs. regex patterns. Plain-text searches use SIMD-accelerated literal matching, avoiding regex compilation warnings on common patterns like example.com or parentheses.
  • 100% Recall Fallbacks: Automatically falls back to exact Unicode filesystem search ( fsGrep ) for complex patterns and queries to guarantee the agent never misses a match.
  • Glob & Exclusion Support: Full support for recursive **/ glob walks, brace expansions ( *.{js,ts} ), and post-filtering exclusions using minimatch .
  • Turkish/Unicode Support: Handles Turkish characters ( ş , ı , İ ) accurately by bypassing native ASCII case folding when necessary to match bash grep output exactly.

⚠️ Current Limitations

  • Keyword Search: fff indexes symbols and identifiers, not language keywords (like import , const , return ). For keyword-only searches, standard shell tools are still recommended.
  • Turkish Uppercase Folding: ASCII-only folding means ISTANBUL won't match İstanbul . (Workaround: Use lowercase istanbul for case-insensitive search).
  • Workspace Boundaries: Searches are strictly bound to the active workspace folder for security and indexing purposes.

📦 Installation

Simply add it to your opencode.json / opencode.jsonc :

{
  "plugin": ["opencode-fff-search"]
}

OpenCode will auto-install the plugin and all its native dependencies on next startup.

GitHub: ozgurulukir/opencode-fff-search https://github.com/ozgurulukir/opencode-fff-search NPM: opencode-fff-search https://www.npmjs.com/package/opencode-fff-search

Feedback, issues, or PRs are very welcome! Let me know what you think!

u/ozguru — 27 days ago
▲ 14 r/crystal_programming+1 crossposts

fff.cr — Ported the Bash fff file manager to Crystal. Runs on Windows 11, Linux.

Hi everyone!

I've ported the classic Bash fff (Fucking Fast File Manager) to Crystal 1.20.1. The goal was to bring the simplicity of the original to a compiled, type-safe binary that runs natively on Windows 11, Linux, and macOS (not tested) with zero runtime dependencies.

https://preview.redd.it/fqzfp9acgv5h1.jpg?width=1235&format=pjpg&auto=webp&s=41e7991f48847e93d7e7f67ca5861ec239b14fa5

Key Enhancements in the Crystal Port:

Flicker-Free Speed: LS_COLORS parsed once, git branch cached per directory, incremental render loop — no double-buffering flicker.

Split-Pane Previews: Interactive side panel for file previews and directory stats (bat → less → built-in fallback chain).

Truecolor Themes & Nerd Icons: 5 built-in themes (Catppuccin Mocha, Gruvbox, Nord, Dracula, default) and 100+ file/folder glyphs via Nerd Fonts.

Live Search Modes: Fuzzy filename matching (/), ripgrep content search (!), and recursive tree search (>) — all navigable while typing.

TUI-Native Prompts: Creating files, renaming, and confirmations happen entirely inside the status line without breaking terminal state.

Cross-Platform: Compiles and runs on Linux and Windows 11. POSIX signals, shell detection, and file permissions are conditionally compiled per platform.

Secure Execution: Fully shell-injection free. All system commands use Process.run with explicit argv arrays — no system() or backticks.

Try it out:

Linux/macOS:

git clone https://github.com/ozgurulukir/fff.cr.git && cd fff.cr
make deps && make build
./bin/fff-cr

Windows 11 (PowerShell):

git clone https://github.com/ozgurulukir/fff.cr.git && cd fff.cr
shards install
crystal run scripts/patch_shards.cr
crystal build src/fff.cr -o bin/fff-cr.exe
.\bin\fff-cr.exe

Repo: https://github.com/ozgurulukir/fff.cr

reddit.com
u/ozguru — 29 days ago