{"id":49764764,"url":"https://github.com/icedream/werkler","last_synced_at":"2026-05-11T10:24:03.153Z","repository":{"id":354324705,"uuid":"1220642478","full_name":"icedream/werkler","owner":"icedream","description":"An attempt at throwing together an AI software development tool... with AI","archived":false,"fork":false,"pushed_at":"2026-04-28T04:58:24.000Z","size":599,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-28T05:24:29.239Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icedream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"docs/agents.md","dco":null,"cla":null}},"created_at":"2026-04-25T06:19:57.000Z","updated_at":"2026-04-28T04:55:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/icedream/werkler","commit_stats":null,"previous_names":["icedream/werkler"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/icedream/werkler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icedream%2Fwerkler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icedream%2Fwerkler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icedream%2Fwerkler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icedream%2Fwerkler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icedream","download_url":"https://codeload.github.com/icedream/werkler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icedream%2Fwerkler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32890458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-11T10:24:02.221Z","updated_at":"2026-05-11T10:24:03.141Z","avatar_url":"https://github.com/icedream.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Werkler\n\n**AI-assisted software development toolkit**\n\nWerkler is an AI-powered CLI tool that helps software developers with routine tasks:\nwriting and reviewing code, designing software, drafting tickets, and technical documentation.\n\n## 🚀 Features\n\n- **Multi-provider AI support**: Use OpenAI, GitHub Copilot, and other OpenAI-compatible APIs simultaneously\n- **Model Context Protocol (MCP) integration**: Connect to external tools and APIs with proper OAuth + DCR support\n- **Interactive TUI**: Full-featured terminal UI with model switching, session management, and more\n- **Session persistence**: Save and resume chat sessions\n- **Tool approval system**: Control which AI actions require confirmation\n- **Skills system**: Load reusable instruction sets\n- **Custom agents**: Define named AI personas with optional tool restrictions\n- **Rubber duck reviewer**: Optional secondary AI model for critical feedback\n- **Autopilot mode**: Autonomous task execution with cycle limits\n\n## 📦 Installation\n\n### From source\n\n```sh\ngit clone https://github.com/icedream/werkler.git\ncd werkler\ngo build -o werkler ./cmd/werkler\nchmod +x werkler\nsudo mv werkler /usr/local/bin/\n```\n\n## 🛠️ Configuration\n\nWerkler uses a TOML configuration file located at:\n\n- **Linux / BSD**: `$XDG_CONFIG_HOME/werkler/config.toml` (usually `~/.config/werkler/config.toml`)\n- **macOS**: `~/Library/Application Support/werkler/config.toml`\n- **Windows**: `%AppData%\\werkler\\config.toml`\n\n```sh\n# Create a basic config\nmkdir -p ~/.config/werkler\nwerkler chat  # Generates default config if missing\n```\n\nSee [Configuration Documentation](docs/configuration.md) for detailed configuration options including:\n- Multiple AI providers (OpenAI, GitHub Copilot)\n- MCP server setup (stdio, streamable HTTP, SSE)\n- OAuth authentication\n- Rubber duck reviewer setup\n- Tool auto-approval patterns\n\n## 🎯 Usage\n\n### Quick start\n\n```sh\n# Start interactive chat\nwerkler chat\n\n# Run a prompt and exit\nwerkler chat --prompt \"Help me design an API\"\n```\n\n### Common tasks\n\n```sh\n# List saved sessions\nwerkler sessions list\n\n# Delete a session\nwerkler sessions delete \u003cid\u003e\n\n# Delete a session without a confirmation prompt\nwerkler sessions delete \u003cid\u003e --force\n\n# Authenticate with GitHub Copilot\nwerkler auth copilot\n\n# Check authentication status\nwerkler auth status\n```\n\n### Options\n\n```sh\n# Use a specific config file\nwerkler --config /path/to/config.toml chat\n\n# Override the active AI model\nwerkler --model gpt-4o chat\n\n# Switch AI provider\nwerkler chat --provider=openai\n\n# Resume the session picker on startup\nwerkler chat --resume\n\n# Resume a specific saved session by ID (or unique prefix)\nwerkler chat --session abc123\n\n# Activate a named mode preset on startup\nwerkler chat --mode plan\n\n# Activate a named agent on startup\nwerkler chat --agent code-review-agent\n\n# Enable autopilot for autonomous work\nwerkler chat --autopilot --prompt \"Write tests for pkg/api\"\n\n# Limit autopilot cycles\nwerkler chat --autopilot --autopilot-max-cycles 20 --prompt \"...\"\n\n# Enable verbose output in prompt mode\nwerkler chat --prompt \"...\" --verbose\n```\n\n## 🛠️ AI Providers\n\nWerkler supports multiple AI providers. See [Configuration](docs/configuration.md#ai-provider) for details:\n\n- **OpenAI-compatible**: Any OpenAI-compatible API (OpenAI, Ollama, vLLM, KubeAI, etc.)\n- **GitHub Copilot**: Native provider with device flow authentication\n- **Multiple providers**: Switch between providers live in the TUI\n\n## 💬 Skills\n\nSkills are reusable instruction sets that can be loaded on demand. See [Skills Documentation](docs/skills.md):\n\n```sh\n# Create a skill\nmkdir -p ~/.agents/skills/my-skill\ncat \u003e ~/.agents/skills/my-skill/SKILL.md \u003c\u003c 'EOF'\n---\nname: my-skill\ndescription: Instructions for the AI\n---\n\nYour instructions here...\nEOF\n```\n\nThen ask the AI: \"Use the my-skill skill and review my code.\"\n\n## 🔄 Tool Approval\n\nWerkler asks for approval before calling tools (unless auto-approved):\n\n- `y`: Allow this call once\n- `a`: Allow this tool for the session\n- `p`: Allow permanently (adds to config)\n- `n`: Deny\n\nConfigure auto-approved tools in your config:\n\n```toml\n[mcp]\nauto_approve_tools = [\n  \"fs__read_file\",\n  \"git__log\",\n]\n```\n\n## 📚 Documentation\n\n- [Configuration](docs/configuration.md) - Complete configuration reference\n- [TUI Reference](docs/tui.md) - Keyboard shortcuts, slash commands, and interactive features\n- [Skills](docs/skills.md) - Reusable instruction sets\n- [Agents](docs/agents.md) - Custom AI personas with tool restrictions\n- [Autopilot Mode](docs/autopilot.md) - Autonomous task execution\n- [Mode Presets](docs/modes.md) - Built-in and custom mode configuration\n- [Project Memory](docs/memory.md) - Persistent per-project AI memory\n\n## 🤝 Contributing\n\nContributions are welcome! Please open an issue or pull request.\n\n## 📜 License\n\nSee [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficedream%2Fwerkler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficedream%2Fwerkler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficedream%2Fwerkler/lists"}