*codetyper.txt* AI-powered coding partner for Neovim Author: cargdev Homepage: https://github.com/cargdev/codetyper.nvim License: MIT ============================================================================== CONTENTS *codetyper-contents* 1. Introduction ............................ |codetyper-introduction| 2. Requirements ............................ |codetyper-requirements| 3. Installation ............................ |codetyper-installation| 4. Configuration ........................... |codetyper-configuration| 5. LLM Providers ........................... |codetyper-providers| 6. Usage ................................... |codetyper-usage| 7. Commands ................................ |codetyper-commands| 8. Agent Mode .............................. |codetyper-agent| 9. Transform Commands ...................... |codetyper-transform| 10. Keymaps ................................ |codetyper-keymaps| 11. API .................................... |codetyper-api| ============================================================================== 1. INTRODUCTION *codetyper-introduction* Codetyper.nvim is an AI-powered coding partner that helps you write code faster using LLM APIs with a unique workflow. Key features: - Split view with coder file and target file side by side - Prompt-based code generation using /@ ... @/ tags - Support for Claude, OpenAI, Gemini, Copilot, and Ollama providers - Agent mode with autonomous tool use (read, edit, write, bash) - Transform commands for inline prompt processing - Auto-index feature for automatic companion file creation - Automatic .gitignore management - Real-time logs panel with token usage tracking ============================================================================== 2. REQUIREMENTS *codetyper-requirements* - Neovim >= 0.8.0 - curl (for API calls) - One of: - Claude API key (ANTHROPIC_API_KEY) - OpenAI API key (OPENAI_API_KEY) - Gemini API key (GEMINI_API_KEY) - GitHub Copilot (via copilot.lua or copilot.vim) - Ollama running locally ============================================================================== 3. INSTALLATION *codetyper-installation* Using lazy.nvim: >lua { "cargdev/codetyper.nvim", config = function() require("codetyper").setup({ llm = { provider = "claude", -- or "openai", "gemini", "copilot", "ollama" }, }) end, } < Using packer.nvim: >lua use { "cargdev/codetyper.nvim", config = function() require("codetyper").setup() end, } < ============================================================================== 4. CONFIGURATION *codetyper-configuration* Default configuration: >lua require("codetyper").setup({ llm = { provider = "claude", -- "claude", "openai", "gemini", "copilot", "ollama" claude = { api_key = nil, -- Uses ANTHROPIC_API_KEY env var if nil model = "claude-sonnet-4-20250514", }, openai = { api_key = nil, -- Uses OPENAI_API_KEY env var if nil model = "gpt-4o", endpoint = nil, -- Custom endpoint (Azure, OpenRouter, etc.) }, gemini = { api_key = nil, -- Uses GEMINI_API_KEY env var if nil model = "gemini-2.0-flash", }, copilot = { model = "gpt-4o", -- Uses OAuth from copilot.lua/copilot.vim }, ollama = { host = "http://localhost:11434", model = "deepseek-coder:6.7b", }, }, window = { width = 25, -- Percentage of screen width (25 = 25%) position = "left", border = "rounded", }, patterns = { open_tag = "/@", close_tag = "@/", file_pattern = "*.coder.*", }, auto_gitignore = true, auto_open_ask = true, auto_index = false, -- Auto-create coder companion files }) < ============================================================================== 5. LLM PROVIDERS *codetyper-providers* *codetyper-claude* Claude~ Best for complex reasoning and code generation. >lua llm = { provider = "claude", claude = { model = "claude-sonnet-4-20250514" }, } < *codetyper-openai* OpenAI~ Supports custom endpoints for Azure, OpenRouter, etc. >lua llm = { provider = "openai", openai = { model = "gpt-4o", endpoint = nil, -- optional custom endpoint }, } < *codetyper-gemini* Google Gemini~ Fast and capable. >lua llm = { provider = "gemini", gemini = { model = "gemini-2.0-flash" }, } < *codetyper-copilot* GitHub Copilot~ Uses your existing Copilot subscription. Requires copilot.lua or copilot.vim to be configured. >lua llm = { provider = "copilot", copilot = { model = "gpt-4o" }, } < *codetyper-ollama* Ollama (Local)~ Run models locally with no API costs. >lua llm = { provider = "ollama", ollama = { host = "http://localhost:11434", model = "deepseek-coder:6.7b", }, } < ============================================================================== 6. USAGE *codetyper-usage* 1. Open any file (e.g., `index.ts`) 2. Run `:Coder open` to create/open the corresponding coder file 3. In the coder file, write prompts using the tag syntax: > /@ Create a function that fetches user data from an API with error handling and returns a User object @/ < 4. When you close the tag with `@/`, the plugin will: - Send the prompt to the configured LLM - Generate the code - Inject it into the target file Prompt Types~ The plugin detects the type of request from your prompt: - "refactor" / "rewrite" - Modifies existing code - "add" / "create" / "implement" - Adds new code - "document" / "comment" - Adds documentation - "explain" - Provides explanations (no code injection) ============================================================================== 7. COMMANDS *codetyper-commands* *:Coder* :Coder [subcommand] Main command with subcommands: open Open coder view for current file close Close coder view toggle Toggle coder view process Process the last prompt and generate code status Show plugin status and project statistics focus Switch focus between coder and target windows tree Manually refresh the tree.log file tree-view Open tree.log in a split view *:CoderOpen* :CoderOpen Open the coder split view for the current file. *:CoderClose* :CoderClose Close the coder split view. *:CoderToggle* :CoderToggle Toggle the coder split view. *:CoderProcess* :CoderProcess Process the last prompt in the current coder buffer. *:CoderAsk* :CoderAsk Open the Ask panel for questions and explanations. *:CoderAskToggle* :CoderAskToggle Toggle the Ask panel. *:CoderAskClear* :CoderAskClear Clear Ask panel chat history. *:CoderAgent* :CoderAgent Open the Agent panel for autonomous coding tasks. *:CoderAgentToggle* :CoderAgentToggle Toggle the Agent panel. *:CoderAgentStop* :CoderAgentStop Stop the currently running agent. *:CoderTransform* :CoderTransform Transform all /@ @/ tags in the current file. *:CoderTransformCursor* :CoderTransformCursor Transform the /@ @/ tag at cursor position. *:CoderTransformVisual* :CoderTransformVisual Transform selected /@ @/ tags (visual mode). *:CoderIndex* :CoderIndex Open coder companion file for current source file. *:CoderLogs* :CoderLogs Toggle the logs panel showing LLM request details. *:CoderType* :CoderType Show mode switcher UI (Ask/Agent). *:CoderTree* :CoderTree Manually refresh the tree.log file in .coder/ folder. *:CoderTreeView* :CoderTreeView Open the tree.log file in a vertical split for viewing. ============================================================================== 8. AGENT MODE *codetyper-agent* Agent mode provides an autonomous coding assistant with tool access. Available Tools~ - read_file Read file contents at a path - edit_file Edit files with find/replace - write_file Create or overwrite files - bash Execute shell commands Using Agent Mode~ 1. Open the agent panel: `:CoderAgent` or `ca` 2. Describe what you want to accomplish 3. The agent will use tools to complete the task 4. Review changes before they're applied Agent Keymaps~ Submit message Ctrl+c Stop agent execution q Close agent panel ============================================================================== 9. TRANSFORM COMMANDS *codetyper-transform* Transform commands allow you to process /@ @/ tags inline without opening the split view. *:CoderTransform* :CoderTransform Find and transform all /@ @/ tags in the current buffer. Each tag is replaced with generated code. *:CoderTransformCursor* :CoderTransformCursor Transform the /@ @/ tag at the current cursor position. Useful for processing a single prompt. *:CoderTransformVisual* :'<,'>CoderTransformVisual Transform /@ @/ tags within the visual selection. Select lines containing tags and run this command. Example~ > // In your source file: /@ Add input validation for email @/ // After running :CoderTransformCursor: function validateEmail(email) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); } < ============================================================================== 10. KEYMAPS *codetyper-keymaps* Default keymaps (auto-configured): ctt (Normal) Transform tag at cursor ctt (Visual) Transform selected tags ctT (Normal) Transform all tags in file ca (Normal) Toggle Agent panel ci (Normal) Open coder companion (index) Ask Panel keymaps: @ Attach/reference a file Ctrl+Enter Submit question Ctrl+n Start new chat Ctrl+f Add current file as context q Close panel Y Copy last response ============================================================================== 11. API *codetyper-api* *codetyper.setup()* codetyper.setup({opts}) Initialize the plugin with configuration options. *codetyper.get_config()* codetyper.get_config() Returns the current configuration table. *codetyper.is_initialized()* codetyper.is_initialized() Returns true if the plugin has been initialized. ============================================================================== vim:tw=78:ts=8:ft=help:norl: