Skip to content

Commit 84fd8cb

Browse files
authored
Merge pull request #69 from antonbelev/improve-landing-page
feat(docs): improve landing page UX and mobile experience
2 parents 7a2bb82 + cd91017 commit 84fd8cb

File tree

4 files changed

+303
-188
lines changed

4 files changed

+303
-188
lines changed

README.md

Lines changed: 50 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,109 @@
11
# Claude Owl 🦉
22

3-
> A beautiful, open-source desktop UI for managing Claude Code configurations, settings, and features.
3+
**Stop editing JSON and MD files. Manage your Claude Code setup visually.**
44

55
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
66
[![Node Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
77
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
8-
[![Beta](https://img.shields.io/badge/status-Beta-blue.svg)](#status)
9-
10-
**Status:** 🚀 Beta - Actively developed, currently supports **macOS and Windows**.
8+
[![Beta](https://img.shields.io/badge/status-Beta-blue.svg)](#)
119

1210
---
1311

14-
## What is Claude Owl?
12+
## The Problem
1513

16-
Claude Owl is a desktop application for managing [Claude Code](https://code.claude.com) configurations through an intuitive visual interface. Instead of manually editing JSON and YAML configuration files in your text editor or through the Claude Code CLI.
14+
Claude Code is powerful but configuration is painful:
15+
- Hand-editing JSON for permissions rules? Error-prone.
16+
- Managing MCP servers across projects? Copy-paste hell.
17+
- Finding that one subagent you created? Good luck grep-ing through `.claude/`.
18+
- You want to know any metrics about your Claude Code usage? You need to download yet another tool.
1719

18-
## Current Features (Beta)
20+
## The Solution
1921

20-
For a complete list of features, see [SCREENSHOTS.md](SCREENSHOTS.md) and [CHANGELOG.md](CHANGELOG.md).
22+
Claude Owl gives you a visual interface for everything Claude Code configuration:
2123

2224
![Claude Owl Dashboard](screenshots/claude-owl-dashboard.png)
2325

24-
### 🎄 2025 Year in Review
26+
**No more terminal commands. No more JSON typos. Just point, click, done.**
2527

26-
Celebrate your year of AI-powered development! Claude Owl now includes a festive Year in Review feature that showcases your 2025 coding journey with Claude Code:
28+
## What You Can Do
2729

28-
- **📊 Beautiful Stats**: Token usage, costs, sessions, and activity patterns
29-
- **🏆 Achievement Badges**: Earn badges for milestones and coding habits
30-
- **🎯 Model Insights**: See your favorite Claude models and usage breakdown
31-
- **📈 Activity Analytics**: Peak coding months, longest streaks, and daily patterns
32-
- **🎁 Social Sharing**: Share your year with customizable stats for Twitter/X
30+
### Core Features
31+
- **Settings Editor** - User and project-level settings with search and validation
32+
- **Permission Rules** - Visual builder with 6 security templates
33+
- **MCP Servers** - Add, configure, and test Model Context Protocol integrations
34+
- **Subagents** - Create custom agents with tool restrictions and model selection
35+
- **Skills & Commands** - Manage skills and import slash commands from GitHub repos
36+
- **Plugins** - Browse marketplaces, install plugins, enable/disable without editing files
3337

34-
![Year in Review 2025](screenshots/year-in-review-2025-total-tokens.png)
38+
### Power Features
39+
- **Usage Metrics** - Interactive charts showing spend, tokens, and model breakdown
40+
- **Status Line Templates** - 10+ pre-built templates with live preview
41+
- **Dashboard** - Real-time Claude Code detection and API status monitoring
42+
- **Debug Logs** - View and search Claude Code logs without terminal or importing the whole `.claude` directory into an IDE.
3543

36-
Available now through January 1, 2026!
44+
[See all features with screenshots →](https://antonbelev.github.io/claude-owl/screenshots.html)
3745

3846
## Installation
3947

40-
### Prerequisites
48+
### Download (Recommended)
49+
50+
**[📥 Download Latest Release](https://github.com/antonbelev/claude-owl/releases/latest)**
4151

42-
- **Node.js** >= 18.0.0
43-
- **npm** >= 9.0.0
44-
- **Claude Code CLI** ([installation guide](https://code.claude.com/docs/en/quickstart))
45-
- **macOS or Windows**
52+
- macOS (Intel + Apple Silicon)
53+
- Windows (x64 + ARM64)
4654

47-
### Install from Source
55+
[Full installation guide →](https://antonbelev.github.io/claude-owl/installation.html)
4856

49-
Claude Owl is currently in Beta and available for development/testing:
57+
### Build from Source
5058

5159
```bash
52-
# Clone the repository
5360
git clone https://github.com/antonbelev/claude-owl.git
5461
cd claude-owl
55-
56-
# Install dependencies
5762
npm install
58-
59-
# Run in development mode
6063
npm run dev:electron
6164
```
6265

63-
### Download Pre-built Binaries
64-
65-
Pre-built installers are available for macOS and Windows:
66-
67-
**[📥 Download Latest Release](https://github.com/antonbelev/claude-owl/releases/latest)**
68-
69-
- **macOS**: `.dmg` files for Intel and Apple Silicon
70-
- **Windows**: `.exe` installer for x64 and ARM64
71-
72-
For detailed installation instructions, see our [Installation Guide](https://antonbelev.github.io/claude-owl/installation.html).
73-
74-
### Build from Source
75-
76-
```bash
77-
npm run build
78-
npm run package
79-
```
66+
**Requirements:** Node.js 18+, Claude Code CLI installed
8067

81-
## Documentation
68+
## FAQ
8269

83-
- [Architecture Overview](docs/architecture.md) - System design and technical details
84-
- [Contributing Guide](CONTRIBUTING.md) - How to contribute
85-
- [Code of Conduct](CODE_OF_CONDUCT.md) - Community guidelines
86-
- [Development Notes](CLAUDE.md) - Development commands and project structure
87-
- [CHANGELOG.md](CHANGELOG.md) - List of changes and updates
70+
**Does this replace Claude Code?**
71+
No. Claude Owl is a UI layer on top of Claude Code CLI. You still need Claude Code installed.
8872

89-
## Tech Stack
73+
**Is my data safe?**
74+
100% local. No telemetry, no external servers, no data collection. Everything stays on your machine.
9075

91-
- **Desktop Framework**: Electron
92-
- **Frontend**: React 18 + TypeScript
93-
- **Build Tool**: Vite
94-
- **State Management**: Zustand
95-
- **Styling**: Tailwind CSS + shadcn/ui
96-
- **Testing**: Vitest + React Testing Library
76+
**What platforms work?**
77+
macOS (Intel + Apple Silicon) and Windows (x64 + ARM64). Linux support coming soon.
9778

9879
## Contributing
9980

100-
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
101-
102-
To get started:
81+
PRs welcome! Check [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
10382

83+
Quick start:
10484
```bash
105-
# Fork and clone the repository
10685
git clone https://github.com/antonbelev/claude-owl.git
10786
cd claude-owl
108-
109-
# Install dependencies
11087
npm install
111-
112-
# Start development server
11388
npm run dev:electron
11489
```
11590

116-
## FAQ
117-
118-
### Does Claude Owl replace Claude Code?
119-
120-
No, Claude Owl is a UI companion for Claude Code. It manages configurations visually but still uses the Claude Code CLI under the hood.
121-
122-
### Is my data safe?
123-
124-
Yes! Claude Owl is completely local-first. All configurations and data stay on your machine. No data is sent to external servers, and no telemetry is collected.
91+
## Tech Stack
12592

126-
### What platforms are currently supported?
93+
Electron + React 18 + TypeScript + Vite + Zustand + Tailwind CSS
12794

128-
- **macOS** (Intel & Apple Silicon) - ✅ Fully supported
129-
- **Windows** (x64 & ARM64) - ✅ Fully supported
95+
See [CLAUDE.md](CLAUDE.md) for development notes and [docs/architecture.md](docs/architecture.md) for system design.
13096

131-
### How can I contribute?
97+
## Star History
13298

133-
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
99+
[![Star History Chart](https://api.star-history.com/svg?repos=antonbelev/claude-owl&type=Date)](https://star-history.com/#antonbelev/claude-owl&Date)
134100

135101
## License
136102

137103
Claude Owl is open-source software licensed under the [MIT License](LICENSE).
138104

139-
## Support
140-
141-
- 📖 [Documentation](docs/)
142-
- 💬 [Discussions](https://github.com/antonbelev/claude-owl/discussions)
143-
- 🐛 [Issue Tracker](https://github.com/antonbelev/claude-owl/issues)
144-
145-
## Disclaimer
105+
---
146106

147-
Claude Owl is an independent community project and is **not affiliated with, endorsed by, or sponsored by Anthropic**. Claude is a trademark of Anthropic, Inc. This project uses Claude through the publicly available Claude Code CLI and is not an official Anthropic product.
107+
**Disclaimer:** Claude Owl is not affiliated with Anthropic. Claude is a trademark of Anthropic PCB.
148108

149-
---
109+
**Support:** [Issues](https://github.com/antonbelev/claude-owl/issues)[Discussions](https://github.com/antonbelev/claude-owl/discussions)[Documentation](https://antonbelev.github.io/claude-owl/)

docs/assets/app.js

Lines changed: 91 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,23 +278,103 @@ function trackDownload(platform, arch, version) {
278278
console.log(`Download tracked: ${platform} ${arch} ${version}`);
279279
// Future: Send to analytics service
280280
// Example: gtag('event', 'download', { platform, arch, version });
281+
282+
// Show star modal after a short delay
283+
setTimeout(() => {
284+
showStarModal();
285+
}, 2000);
281286
}
282287

283288
/**
284-
* Mobile menu toggle
289+
* Show GitHub star modal
285290
*/
286-
function setupMobileMenu() {
287-
const menuBtn = document.getElementById('mobile-menu-btn');
288-
const nav = document.querySelector('nav');
291+
function showStarModal() {
292+
// Check if user has already dismissed the modal
293+
const dismissed = localStorage.getItem('star-modal-dismissed');
294+
if (dismissed === 'true') {
295+
return;
296+
}
297+
298+
const modal = document.getElementById('star-modal');
299+
if (modal) {
300+
modal.classList.remove('hidden');
301+
}
302+
}
303+
304+
/**
305+
* Close GitHub star modal
306+
*/
307+
function closeStarModal() {
308+
const modal = document.getElementById('star-modal');
309+
if (modal) {
310+
modal.classList.add('hidden');
311+
}
312+
}
313+
314+
/**
315+
* Dismiss star modal permanently
316+
*/
317+
function dismissStarModal() {
318+
localStorage.setItem('star-modal-dismissed', 'true');
319+
closeStarModal();
320+
}
321+
322+
/**
323+
* Setup star modal event listeners
324+
*/
325+
function setupStarModal() {
326+
const closeBtn = document.getElementById('close-star-modal');
327+
const maybeLaterBtn = document.getElementById('maybe-later-btn');
328+
const starBtn = document.getElementById('star-github-btn');
329+
330+
if (closeBtn) {
331+
closeBtn.addEventListener('click', () => {
332+
dismissStarModal();
333+
});
334+
}
335+
336+
if (maybeLaterBtn) {
337+
maybeLaterBtn.addEventListener('click', () => {
338+
closeStarModal();
339+
});
340+
}
341+
342+
if (starBtn) {
343+
starBtn.addEventListener('click', () => {
344+
dismissStarModal();
345+
});
346+
}
347+
348+
// Close modal on ESC key
349+
document.addEventListener('keydown', (e) => {
350+
if (e.key === 'Escape') {
351+
const modal = document.getElementById('star-modal');
352+
if (modal && !modal.classList.contains('hidden')) {
353+
dismissStarModal();
354+
}
355+
}
356+
});
289357

290-
if (menuBtn && nav) {
291-
menuBtn.addEventListener('click', () => {
292-
// Mobile menu implementation
293-
alert('Mobile menu coming soon!');
358+
// Close modal when clicking outside
359+
const modal = document.getElementById('star-modal');
360+
if (modal) {
361+
modal.addEventListener('click', (e) => {
362+
if (e.target === modal) {
363+
dismissStarModal();
364+
}
294365
});
295366
}
296367
}
297368

369+
/**
370+
* Mobile menu toggle
371+
* Note: Mobile menu is now handled in header.js
372+
*/
373+
function setupMobileMenu() {
374+
// Mobile menu functionality is now handled in header.js
375+
// This function is kept for backwards compatibility
376+
}
377+
298378
/**
299379
* Setup platform tabs on installation page
300380
*/
@@ -359,6 +439,9 @@ async function init() {
359439
// Setup platform tabs (installation page only)
360440
setupPlatformTabs();
361441

442+
// Setup star modal (home page only)
443+
setupStarModal();
444+
362445
// Smooth scrolling for anchor links
363446
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
364447
anchor.addEventListener('click', function (e) {

0 commit comments

Comments
 (0)