tilde-agent 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. tilde_agent-0.1.1/LICENSE +21 -0
  2. tilde_agent-0.1.1/PKG-INFO +375 -0
  3. tilde_agent-0.1.1/README.md +314 -0
  4. tilde_agent-0.1.1/pyproject.toml +158 -0
  5. tilde_agent-0.1.1/pyproject.toml.orig +192 -0
  6. tilde_agent-0.1.1/src/tilde/__init__.py +32 -0
  7. tilde_agent-0.1.1/src/tilde/cli.py +283 -0
  8. tilde_agent-0.1.1/src/tilde/logging.py +74 -0
  9. tilde_agent-0.1.1/src/tilde/main.py +29 -0
  10. tilde_agent-0.1.1/src/tilde/runtime/__init__.py +16 -0
  11. tilde_agent-0.1.1/src/tilde/runtime/_streaming.py +261 -0
  12. tilde_agent-0.1.1/src/tilde/runtime/agent.py +1806 -0
  13. tilde_agent-0.1.1/src/tilde/runtime/context.py +194 -0
  14. tilde_agent-0.1.1/src/tilde/runtime/events.py +327 -0
  15. tilde_agent-0.1.1/src/tilde/runtime/mcp.py +321 -0
  16. tilde_agent-0.1.1/src/tilde/runtime/model/__init__.py +53 -0
  17. tilde_agent-0.1.1/src/tilde/runtime/model/anthropic.py +275 -0
  18. tilde_agent-0.1.1/src/tilde/runtime/model/base.py +178 -0
  19. tilde_agent-0.1.1/src/tilde/runtime/model/openai.py +284 -0
  20. tilde_agent-0.1.1/src/tilde/runtime/model/openrouter.py +306 -0
  21. tilde_agent-0.1.1/src/tilde/runtime/modes/__init__.py +21 -0
  22. tilde_agent-0.1.1/src/tilde/runtime/modes/interactive.py +88 -0
  23. tilde_agent-0.1.1/src/tilde/runtime/modes/json_mode.py +120 -0
  24. tilde_agent-0.1.1/src/tilde/runtime/modes/print_mode.py +133 -0
  25. tilde_agent-0.1.1/src/tilde/runtime/modes/rpc_mode.py +234 -0
  26. tilde_agent-0.1.1/src/tilde/runtime/policy.py +586 -0
  27. tilde_agent-0.1.1/src/tilde/runtime/queue.py +274 -0
  28. tilde_agent-0.1.1/src/tilde/runtime/sandbox.py +129 -0
  29. tilde_agent-0.1.1/src/tilde/runtime/session/__init__.py +11 -0
  30. tilde_agent-0.1.1/src/tilde/runtime/session/compaction.py +83 -0
  31. tilde_agent-0.1.1/src/tilde/runtime/session/manager.py +616 -0
  32. tilde_agent-0.1.1/src/tilde/runtime/skills.py +158 -0
  33. tilde_agent-0.1.1/src/tilde/runtime/tools/__init__.py +112 -0
  34. tilde_agent-0.1.1/src/tilde/runtime/tools/base.py +187 -0
  35. tilde_agent-0.1.1/src/tilde/runtime/tools/bash.py +314 -0
  36. tilde_agent-0.1.1/src/tilde/runtime/tools/browser.py +318 -0
  37. tilde_agent-0.1.1/src/tilde/runtime/tools/edit.py +127 -0
  38. tilde_agent-0.1.1/src/tilde/runtime/tools/find.py +107 -0
  39. tilde_agent-0.1.1/src/tilde/runtime/tools/github.py +160 -0
  40. tilde_agent-0.1.1/src/tilde/runtime/tools/grep.py +150 -0
  41. tilde_agent-0.1.1/src/tilde/runtime/tools/ls.py +96 -0
  42. tilde_agent-0.1.1/src/tilde/runtime/tools/read.py +247 -0
  43. tilde_agent-0.1.1/src/tilde/runtime/tools/skill.py +90 -0
  44. tilde_agent-0.1.1/src/tilde/runtime/tools/subagent.py +115 -0
  45. tilde_agent-0.1.1/src/tilde/runtime/tools/sysinfo.py +99 -0
  46. tilde_agent-0.1.1/src/tilde/runtime/tools/web_search.py +167 -0
  47. tilde_agent-0.1.1/src/tilde/runtime/tools/write.py +196 -0
  48. tilde_agent-0.1.1/src/tilde/state/__init__.py +76 -0
  49. tilde_agent-0.1.1/src/tilde/state/composer.py +47 -0
  50. tilde_agent-0.1.1/src/tilde/state/context.py +113 -0
  51. tilde_agent-0.1.1/src/tilde/state/execution.py +55 -0
  52. tilde_agent-0.1.1/src/tilde/state/inspector.py +124 -0
  53. tilde_agent-0.1.1/src/tilde/state/transcript.py +52 -0
  54. tilde_agent-0.1.1/src/tilde/tracing.py +63 -0
  55. tilde_agent-0.1.1/src/tilde/tui/__init__.py +19 -0
  56. tilde_agent-0.1.1/src/tilde/tui/app.py +776 -0
  57. tilde_agent-0.1.1/src/tilde/tui/components/__init__.py +18 -0
  58. tilde_agent-0.1.1/src/tilde/tui/components/approval.py +51 -0
  59. tilde_agent-0.1.1/src/tilde/tui/components/composer.py +348 -0
  60. tilde_agent-0.1.1/src/tilde/tui/components/footer.py +176 -0
  61. tilde_agent-0.1.1/src/tilde/tui/components/header.py +154 -0
  62. tilde_agent-0.1.1/src/tilde/tui/components/inspector.py +142 -0
  63. tilde_agent-0.1.1/src/tilde/tui/components/transcript.py +330 -0
  64. tilde_agent-0.1.1/src/tilde/tui/display.py +216 -0
  65. tilde_agent-0.1.1/src/tilde/tui/themes/__init__.py +5 -0
  66. tilde_agent-0.1.1/src/tilde/tui/themes/tokens.py +26 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 tilde Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,375 @@
1
+ Metadata-Version: 2.4
2
+ Name: tilde-agent
3
+ Version: 0.1.1
4
+ Summary: A production-grade, terminal-based AI/Agentic coding harness with enhanced security
5
+ Keywords: ai,agent,coding,terminal,tui,productivity,automation
6
+ Author: tilde Team
7
+ Author-email: tilde Team <tilde@example.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Topic :: Software Development :: Build Tools
17
+ Classifier: Topic :: Terminals
18
+ Classifier: Topic :: Text Editors
19
+ Requires-Dist: rich>=13.7.0
20
+ Requires-Dist: textual>=4.0.0
21
+ Requires-Dist: typer>=0.9.0
22
+ Requires-Dist: openai>=1.0.0
23
+ Requires-Dist: anthropic>=0.40.0
24
+ Requires-Dist: httpx>=0.25.0
25
+ Requires-Dist: pydantic>=2.5.0
26
+ Requires-Dist: pydantic-settings>=2.1.0
27
+ Requires-Dist: structlog>=23.2.0
28
+ Requires-Dist: opentelemetry-api>=1.21.0
29
+ Requires-Dist: opentelemetry-sdk>=1.21.0
30
+ Requires-Dist: sqlmodel>=0.0.14
31
+ Requires-Dist: mcp>=1.0.0
32
+ Requires-Dist: typing-extensions>=4.9.0
33
+ Requires-Dist: tilde-agent[dev] ; extra == 'all'
34
+ Requires-Dist: tilde-agent[security] ; extra == 'all'
35
+ Requires-Dist: tilde-agent[browser] ; extra == 'all'
36
+ Requires-Dist: tilde-agent[github] ; extra == 'all'
37
+ Requires-Dist: playwright>=1.40.0 ; extra == 'browser'
38
+ Requires-Dist: pytest>=7.4.0 ; extra == 'dev'
39
+ Requires-Dist: pytest-asyncio>=0.23.0 ; extra == 'dev'
40
+ Requires-Dist: pytest-cov>=4.1.0 ; extra == 'dev'
41
+ Requires-Dist: ruff>=0.1.0 ; extra == 'dev'
42
+ Requires-Dist: mypy>=1.8.0 ; extra == 'dev'
43
+ Requires-Dist: pyright>=1.1.0 ; extra == 'dev'
44
+ Requires-Dist: mkdocs>=1.5.0 ; extra == 'dev'
45
+ Requires-Dist: mkdocs-material>=9.5.0 ; extra == 'dev'
46
+ Requires-Dist: pygithub>=2.1.1 ; extra == 'github'
47
+ Requires-Dist: ghapi>=1.0.0 ; extra == 'github'
48
+ Requires-Dist: bandit>=1.7.0 ; extra == 'security'
49
+ Requires-Dist: safety>=2.3.0 ; extra == 'security'
50
+ Requires-Python: >=3.12, <3.14
51
+ Project-URL: Homepage, https://github.com/Chmgx81/tilde
52
+ Project-URL: Documentation, https://github.com/Chmgx81/tilde#readme
53
+ Project-URL: Repository, https://github.com/Chmgx81/tilde.git
54
+ Project-URL: Issues, https://github.com/Chmgx81/tilde/issues
55
+ Provides-Extra: all
56
+ Provides-Extra: browser
57
+ Provides-Extra: dev
58
+ Provides-Extra: github
59
+ Provides-Extra: security
60
+ Description-Content-Type: text/markdown
61
+
62
+ # tilde (~)
63
+
64
+ > **A production-grade, terminal-based AI/Agentic coding harness with enhanced security**
65
+
66
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
67
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
68
+ [![Code Style: Ruff](https://img.shields.io/badge/code%20style-ruff-yellow.svg)](https://github.com/astral-sh/ruff)
69
+
70
+ ---
71
+
72
+ ## 🚀 Quick Start
73
+
74
+ ### Installation
75
+
76
+ ```bash
77
+ # Clone the repository
78
+ git clone https://github.com/Chmgx81/tilde.git
79
+ cd tilde
80
+
81
+ # Install with uv (recommended)
82
+ uv sync
83
+
84
+ # Or install in development mode
85
+ uv pip install -e .
86
+ ```
87
+
88
+ ### Usage
89
+
90
+ ```bash
91
+ # Start interactive mode (default)
92
+ tilde
93
+
94
+ # Continue a session
95
+ tilde --continue
96
+
97
+ # Use a specific model
98
+ tilde --model gpt-4 --provider openai
99
+
100
+ # Run in JSON mode
101
+ tilde --mode json "List all Python files"
102
+
103
+ # Run in print mode (single response)
104
+ tilde --mode print "What's in this directory?"
105
+
106
+ # Attach files (repeatable --file option)
107
+ tilde --file src/main.py "Review this code"
108
+
109
+ # Shell commands run via shell mode: type ! at the start of the
110
+ # composer input line in the interactive TUI (amber border).
111
+ # Example: !ls -la
112
+ ```
113
+
114
+ ---
115
+
116
+ ## ⚡ Features
117
+
118
+ ### ✅ Implemented
119
+ - [x] Project structure and initialization
120
+ - [x] CLI with Typer (interactive, `--mode json|rpc|print`, `--continue`, `--model`, `--provider`)
121
+ - [x] Agent runtime (model providers, tool registry, sessions, compaction, queue)
122
+ - [x] Tool system (read, write, edit, bash, grep, find, ls, web_search, browser, sysinfo, github, subagent, skill)
123
+ - [x] TUI with Rich + Textual (header, transcript, composer, footer, approval modal, inspector modal, NO_COLOR / reduced-motion / ASCII glyphs, output collapsing, `/doctor`, `?` help)
124
+ - [x] MCP support, skills system, subagents, plan mode (`--plan`), accept-edits mode (`--accept-edits`)
125
+ - [x] Policy engine with ASK approval tier + audit trail, session persistence (JSONL)
126
+ - [x] Sandbox execution, logging (structlog), tracing (OpenTelemetry), 200+ unit tests
127
+
128
+ ### 🚧 In Development
129
+ - [ ] Extended tool coverage and hardening (secret redaction in sessions, untrusted-output marking — task_0005)
130
+ - [ ] Ruff baseline: format + lint clean (task_0002 in progress)
131
+
132
+ ### 📋 Planned
133
+ - [ ] Enhanced security (7-Pillar architecture) — partially done (policy, sandbox, audit); remaining: prompt-injection protection, sensitive-data handling
134
+ - [ ] System monitoring (beyond sysinfo tool)
135
+ - [ ] Security auditing (beyond audit tooling)
136
+ - [ ] Extensions/plugins + package system
137
+ - [ ] Polish: comprehensive docs, packaging, CI/CD
138
+
139
+ ---
140
+
141
+ ## 🏗️ Architecture
142
+
143
+ tilde follows a **layered architecture** with clear separation of concerns:
144
+
145
+ ```
146
+ ┌─────────────────────────────────────────────────────────────┐
147
+ │ Agent Runtime (Harness) │
148
+ │ model/ - LLM provider integrations (OpenAI, etc.) │
149
+ │ tools/ - Built-in tools (read, write, bash, etc.) │
150
+ │ session/ - Session management and compaction │
151
+ │ queue/ - Message queue (steering, follow-up) │
152
+ │ context/ - Context file loading (AGENTS.md, etc.) │
153
+ │ policy/ - Security policies and permissions │
154
+ └──────────────────────────┬────────────────────────────────────┘
155
+ ↓ typed events + snapshots
156
+ ┌──────────────────────────▼────────────────────────────────────┐
157
+ │ UI State Store │
158
+ │ transcript/ - Conversation history │
159
+ │ execution/ - Current execution state │
160
+ │ composer/ - Input composer state │
161
+ │ overlay/ - Overlays and modals │
162
+ └──────────────────────────┬────────────────────────────────────┘
163
+ ↓ render model
164
+ ┌──────────────────────────▼────────────────────────────────────┐
165
+ │ TUI Runtime │
166
+ │ app.py - Main Textual application │
167
+ │ layout.py - Layout system (VStack, HStack, ScrollView) │
168
+ │ rendering/ - Differential rendering │
169
+ │ input.py - Input handling (keyboard, mouse, paste, IME) │
170
+ │ terminal/ - Terminal abstraction │
171
+ │ components/ - UI components (header, transcript, composer) │
172
+ │ themes/ - Color themes and design tokens │
173
+ └──────────────────────────┬────────────────────────────────────┘
174
+ ↓ ANSI / synchronized I/O
175
+ ┌──────────────────────────▼────────────────────────────────────┐
176
+ │ Terminal │
177
+ └───────────────────────────────────────────────────────────────┘
178
+ ```
179
+
180
+ ---
181
+
182
+ ## 🎯 Design Principles
183
+
184
+ ### Core Philosophy
185
+ 1. **Plan First**: Always plan before executing code
186
+ 2. **Security First**: 7-Pillar security architecture
187
+ 3. **Harness > Model**: The scaffolding matters more than the model
188
+ 4. **Spec-Driven**: Write specifications before implementation
189
+ 5. **Context Engineering**: Manage context window carefully
190
+
191
+ ### User Experience
192
+ 1. **Safety > Convenience**: Decision surfaces beat decoration
193
+ 2. **Minimal Animation**: Only spinner and streaming updates
194
+ 3. **Quiet When Idle**: No animation when not working
195
+ 4. **History Preservation**: Stable, selectable, copyable, searchable
196
+
197
+ ---
198
+
199
+ ## 📦 Tech Stack
200
+
201
+ | Category | Technology | Purpose |
202
+ |----------|------------|---------|
203
+ | **Language** | Python 3.12+ | Primary language |
204
+ | **Package Manager** | uv | Fast dependency management |
205
+ | **TUI Framework** | Textual | Event loop, layout, rendering |
206
+ | **Rendering** | Rich | Beautiful text rendering |
207
+ | **CLI** | Typer | Command-line interface |
208
+ | **LLM** | OpenAI SDK | Model interactions |
209
+ | **HTTP** | httpx | Async HTTP requests |
210
+ | **Data Validation** | Pydantic | Data models and validation |
211
+ | **Settings** | pydantic-settings | Configuration management |
212
+ | **Observability** | structlog + OpenTelemetry | Logging and tracing |
213
+ | **Database** | SQLModel + SQLite | Session storage |
214
+ | **MCP** | mcp Python SDK | Model Context Protocol |
215
+ | **Parsing** | tree-sitter, difflib | Code parsing and diffs |
216
+ | **Testing** | pytest + pytest-asyncio | Test framework |
217
+ | **Linting** | Ruff | Fast linting |
218
+ | **Type Checking** | mypy / pyright | Static type checking |
219
+
220
+ ---
221
+
222
+ ## 📂 Project Structure
223
+
224
+ ```
225
+ tilde/
226
+ ├── src/tilde/ # Main source code
227
+ │ ├── __init__.py # Package initialization
228
+ │ ├── main.py # Entry point
229
+ │ ├── cli.py # CLI with Typer
230
+ │ ├── logging.py # structlog setup
231
+ │ ├── tracing.py # OpenTelemetry setup
232
+ │ ├── runtime/ # Agent runtime
233
+ │ │ ├── agent.py # Main AgentRuntime class
234
+ │ │ ├── context.py # Context file loading (flat module)
235
+ │ │ ├── policy.py # Policy engine (flat module)
236
+ │ │ ├── queue.py # Message queue (flat module)
237
+ │ │ ├── sandbox.py # Sandbox execution
238
+ │ │ ├── skills.py # Skills discovery
239
+ │ │ ├── mcp.py # MCP integration
240
+ │ │ ├── model/ # Model providers
241
+ │ │ │ ├── __init__.py
242
+ │ │ │ ├── base.py # Base ModelProvider
243
+ │ │ │ ├── openai.py # OpenAI provider
244
+ │ │ │ ├── anthropic.py # Anthropic provider
245
+ │ │ │ └── openrouter.py # OpenRouter provider
246
+ │ │ ├── tools/ # Built-in tools
247
+ │ │ │ ├── __init__.py # Tool registry
248
+ │ │ │ ├── base.py # Base Tool class
249
+ │ │ │ ├── read.py # Read tool
250
+ │ │ │ ├── write.py # Write tool
251
+ │ │ │ ├── edit.py # Edit tool
252
+ │ │ │ ├── bash.py # Bash tool
253
+ │ │ │ ├── grep.py # Grep tool
254
+ │ │ │ ├── find.py # Find tool
255
+ │ │ │ ├── ls.py # Ls tool
256
+ │ │ │ ├── web_search.py # Web search tool
257
+ │ │ │ ├── browser.py # Browser tool
258
+ │ │ │ ├── sysinfo.py # System info tool
259
+ │ │ │ ├── github.py # GitHub tool
260
+ │ │ │ ├── subagent.py # Subagent tool
261
+ │ │ │ └── skill.py # Skill tool
262
+ │ │ ├── session/ # Session management
263
+ │ │ │ ├── __init__.py
264
+ │ │ │ ├── manager.py # Session manager (JSONL)
265
+ │ │ │ └── compaction.py # Compaction engine
266
+ │ │ └── modes/ # Runtime modes
267
+ │ │ ├── __init__.py
268
+ │ │ ├── interactive.py # Interactive TUI mode
269
+ │ │ ├── json_mode.py # JSON event-stream mode
270
+ │ │ ├── rpc_mode.py # JSON-RPC mode
271
+ │ │ └── print_mode.py # Single-response print mode
272
+ │ ├── state/ # UI state management
273
+ │ │ ├── __init__.py # UIState container
274
+ │ │ ├── transcript.py # Transcript state
275
+ │ │ ├── execution.py # Execution state
276
+ │ │ ├── composer.py # Composer state
277
+ │ │ ├── context.py # Context state
278
+ │ │ └── inspector.py # Inspector state
279
+ │ └── tui/ # Terminal UI
280
+ │ ├── __init__.py
281
+ │ ├── app.py # Main Textual app
282
+ │ ├── display.py # NO_COLOR / motion / glyph / collapse / doctor / help
283
+ │ ├── components/ # UI components
284
+ │ │ ├── __init__.py
285
+ │ │ ├── header.py # Header component
286
+ │ │ ├── transcript.py # Transcript component
287
+ │ │ ├── composer.py # Composer component
288
+ │ │ ├── footer.py # Footer component
289
+ │ │ ├── approval.py # Approval modal
290
+ │ │ └── inspector.py # Inspector modal
291
+ │ └── themes/ # Color themes
292
+ │ ├── __init__.py
293
+ │ └── tokens.py # Design tokens (tui-spec.md section 5.1)
294
+ ├── tests/ # Tests (36 unit files, 233 green)
295
+ │ ├── unit/ # Unit tests
296
+ │ ├── integration/ # Integration tests (empty, TODO)
297
+ │ └── e2e/ # End-to-end tests (empty, TODO)
298
+ ├── docs/ # Documentation
299
+ │ └── INSPIRATION_SUMMARY.md # Key learnings from references
300
+ ├── .pi/agent/ # Pi config (skills/, extensions/ - empty, TODO)
301
+ ├── .github/workflows/ # GitHub Actions (empty, TODO)
302
+ ├── pyproject.toml # Project configuration
303
+ ├── progress.md # Project progress tracker
304
+ ├── AGENTS.md # Agent instructions and context
305
+ ├── Plan.md # Master project plan
306
+ ├── tui-spec.md # TUI design specification
307
+ └── README.md # This file
308
+ ```
309
+
310
+ ---
311
+
312
+ ## 🛡️ Security
313
+
314
+ tilde implements the **7-Pillar Agent Security Architecture**:
315
+
316
+ 1. **Infrastructure & Networking**: Sandboxing, network egress governance
317
+ 2. **Data**: Encryption, access controls, tenant partitioning
318
+ 3. **Model**: Prompt validation, output filtering, instruction security
319
+ 4. **Application & Runtime**: LLM firewalls, lifecycle hooks, agent gateways
320
+ 5. **IAM**: Agent identities, ABAC, JIT token downscoping
321
+ 6. **Observability**: OpenTelemetry, behavioral analytics, audit trails
322
+ 7. **Governance**: Compliance, risk assessment, attestation
323
+
324
+ ---
325
+
326
+ ## 📖 Documentation
327
+
328
+ - **[Plan.md](./Plan.md)** - Master project plan and vision
329
+ - **[tui-spec.md](./tui-spec.md)** - TUI design specification (contract)
330
+ - **[AGENTS.md](./AGENTS.md)** - Development guidelines and project context
331
+ - **[progress.md](./progress.md)** - Project progress tracker (start here!)
332
+ - **[docs/INSPIRATION_SUMMARY.md](./docs/INSPIRATION_SUMMARY.md)** - Key learnings from reference materials
333
+
334
+ ---
335
+
336
+ ## 🤝 Contributing
337
+
338
+ See **[AGENTS.md](./AGENTS.md)** for development guidelines.
339
+
340
+ ### Quick Contribution Guide
341
+
342
+ 1. **Read progress.md** - Understand current state
343
+ 2. **Check open questions** - See if your question is already answered
344
+ 3. **Follow the workflow** - Research → Plan → Explain → Implement → Test → Document
345
+ 4. **Update progress.md** - Track your changes
346
+ 5. **Keep it simple** - Don't over-engineer
347
+ 6. **Explain simply** - Use dead-simple English
348
+
349
+ ---
350
+
351
+ ## 📜 License
352
+
353
+ MIT License - see [LICENSE](LICENSE) for details.
354
+
355
+ ---
356
+
357
+ ## 🙏 Acknowledgments
358
+
359
+ tilde is inspired by and builds upon the excellent work of:
360
+ - **[Pi Coding Agent](https://github.com/earendil-works/pi-coding-agent)** - Primary inspiration
361
+ - **[Agent Skills Standard](https://agentskills.io)** - Skills system
362
+ - **[Model Context Protocol](https://github.com/modelcontextprotocol/specification)** - Tool interoperability
363
+ - **[Rich](https://github.com/Textualize/rich)** - Beautiful terminal rendering
364
+ - **[Textual](https://github.com/Textualize/textual)** - TUI framework
365
+
366
+ ---
367
+
368
+ ## 💬 Community
369
+
370
+ - **Issues**: [GitHub Issues](https://github.com/Chmgx81/tilde/issues)
371
+ - **Discussions**: [GitHub Discussions](https://github.com/Chmgx81/tilde/discussions)
372
+
373
+ ---
374
+
375
+ > **Remember**: tilde is always **plan first** - it always plans before executing any code.