The thinking tool enables Kiro to show its reasoning process when working through complex problems, providing transparency into how conclusions are reached.
When enabled, the thinking tool allows Kiro to break down complex reasoning into visible steps, helping you understand the decision-making process and learn from the AI's approach to problem-solving.
kiro-cli settings chat.enableThinking true
Or use the experiment command:
/experiment # Select "Thinking" from the list
When Kiro encounters a complex problem that requires multi-step reasoning, it will:
The thinking tool is automatically invoked by Kiro when:
> What's the best way to implement caching for our API? I recommend using Redis for caching your API responses...
> What's the best way to implement caching for our API? 🧠 Thinking... Let me think through the caching requirements: 1. First, I need to consider the type of data being cached - API responses suggest read-heavy workload - Need to handle cache invalidation 2. Evaluating caching solutions: - In-memory (fast but limited by RAM) - Redis (distributed, persistent, feature-rich) - Memcached (simple, fast, but less features) 3. Considering your use case: - API responses benefit from distributed cache - Need TTL support for automatic expiration - May need cache invalidation on updates 4. Redis appears best because: - Supports complex data structures - Built-in TTL and eviction policies - Can be distributed across nodes - Persistent if needed Based on this analysis, I recommend using Redis for caching your API responses...
> Should we use microservices or a monolith for our new project? 🧠 Thinking... Let me analyze this architectural decision: 1. Project characteristics to consider: - Team size and structure - Expected scale and growth - Deployment requirements - Development velocity needs 2. Microservices advantages: - Independent scaling - Technology flexibility - Isolated failures - But: increased complexity, operational overhead 3. Monolith advantages: - Simpler deployment - Easier debugging - Lower operational cost - But: scaling limitations, tight coupling 4. Decision factors: - Small team → Monolith likely better - Unclear requirements → Start with monolith - Need rapid iteration → Monolith faster initially - Can refactor to microservices later if needed Based on this analysis...
> What sorting algorithm should I use for this data? 🧠 Thinking... Let me think through the sorting requirements: 1. Data characteristics: - Size of dataset - Is data partially sorted? - Memory constraints - Stability requirements 2. Algorithm options: - Quick Sort: O(n log n) average, O(n²) worst - Merge Sort: O(n log n) guaranteed, stable - Heap Sort: O(n log n), in-place - Tim Sort: Optimized for real-world data 3. Trade-offs: - If data is partially sorted → Tim Sort excels - If memory is limited → Heap Sort (in-place) - If stability matters → Merge Sort or Tim Sort - For general case → Quick Sort often fastest 4. Recommendation depends on...
> My application is slow but I don't know why 🧠 Thinking... Let me systematically analyze potential performance issues: 1. Common performance bottlenecks: - Database queries (N+1 problem, missing indexes) - Network latency (API calls, external services) - Memory issues (leaks, excessive allocation) - CPU-bound operations (complex calculations) 2. Diagnostic approach: - First, profile to identify hotspots - Check database query patterns - Monitor network requests - Analyze memory usage patterns 3. Most likely culprits based on typical patterns: - Database queries often account for 60-80% of slowness - Should start there before optimizing code 4. Recommended investigation order...
# Enable kiro-cli settings chat.enableThinking true # Disable kiro-cli settings chat.enableThinking false # Check status kiro-cli settings chat.enableThinking
Verify it's enabled:
kiro-cli settings chat.enableThinking
Try a complex question: Simple questions may not trigger thinking
Restart chat session: Changes may require new session
If thinking output is overwhelming:
Disable for simpler tasks:
kiro-cli settings chat.enableThinking false
Ask for concise answers: Request brief responses explicitly
Use for specific questions: Enable only when needed
Thinking tool