Skip to content

Commit d8a14ea

Browse files
chore(hbd): move README to standard location
1 parent 3c918cd commit d8a14ea

15 files changed

Lines changed: 784 additions & 52 deletions

File tree

docs/app/(home)/page.tsx

Lines changed: 153 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,160 @@
11
import Link from 'next/link';
2+
import {
3+
GitBranch,
4+
Database,
5+
WifiOff,
6+
Network,
7+
Terminal,
8+
BookOpen,
9+
Map,
10+
Mail,
11+
ArrowRight,
12+
Github
13+
} from 'lucide-react';
214

315
export default function HomePage() {
416
return (
5-
<div className="flex flex-col justify-center text-center flex-1">
6-
<h1 className="text-2xl font-bold mb-4">Hello World</h1>
7-
<p>
8-
You can open{' '}
9-
<Link href="/docs" className="font-medium underline">
10-
/docs
11-
</Link>{' '}
12-
and see the documentation.
13-
</p>
17+
<div className="flex flex-col min-h-screen">
18+
<section className="relative flex flex-col items-center justify-center py-24 text-center lg:py-32 overflow-hidden">
19+
<div className="absolute inset-0 -z-10 bg-[radial-gradient(ellipse_at_top,_var(--tw-gradient-stops))] from-sky-900/20 via-slate-900/0 to-slate-900/0"></div>
20+
21+
<div className="inline-flex items-center gap-2 px-3 py-1 mb-6 text-sm font-medium rounded-full bg-sky-500/10 text-sky-400 border border-sky-500/20 animate-in fade-in slide-in-from-bottom-4 duration-500">
22+
<span className="relative flex h-2 w-2">
23+
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-sky-400 opacity-75"></span>
24+
<span className="relative inline-flex rounded-full h-2 w-2 bg-sky-500"></span>
25+
</span>
26+
AI-Native Developer Tools
27+
</div>
28+
29+
<h1 className="text-4xl font-extrabold tracking-tight sm:text-6xl md:text-7xl mb-6 max-w-4xl mx-auto animate-in fade-in slide-in-from-bottom-8 duration-700 delay-100">
30+
Tools that <span className="text-gradient">Remember</span>
31+
<br /> for the Agentic Era
32+
</h1>
33+
34+
<p className="max-w-2xl mx-auto text-lg text-slate-400 mb-10 animate-in fade-in slide-in-from-bottom-8 duration-700 delay-200">
35+
A monorepo of CLI tools powered by HelixDB. Give your AI agents persistent, structured memory with graph traversal and vector search.
36+
</p>
37+
38+
<div className="flex flex-col sm:flex-row gap-4 animate-in fade-in slide-in-from-bottom-8 duration-700 delay-300">
39+
<Link
40+
href="/docs"
41+
className="inline-flex items-center justify-center px-8 py-3 text-base font-medium text-white transition-all bg-sky-500 rounded-lg hover:bg-sky-400 hover:shadow-[0_0_20px_-5px_rgba(14,165,233,0.5)] active:scale-95"
42+
>
43+
Read Documentation
44+
<ArrowRight className="ml-2 h-4 w-4" />
45+
</Link>
46+
<a
47+
href="https://github.com/kevinmichaelchen/helix-tools"
48+
target="_blank"
49+
rel="noopener noreferrer"
50+
className="inline-flex items-center justify-center px-8 py-3 text-base font-medium text-slate-300 transition-all bg-white/5 border border-white/10 rounded-lg hover:bg-white/10 hover:text-white active:scale-95"
51+
>
52+
<Github className="mr-2 h-4 w-4" />
53+
View on GitHub
54+
</a>
55+
</div>
56+
</section>
57+
58+
<section className="px-4 py-16 mx-auto max-w-7xl sm:px-6 lg:px-8">
59+
<h2 className="text-2xl font-bold text-center mb-12 text-slate-200">Built on Core Principles</h2>
60+
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4">
61+
<FeatureCard
62+
icon={<GitBranch className="h-6 w-6 text-sky-400" />}
63+
title="Git-First"
64+
description="Data stored in human-readable Markdown, YAML, and JSONL. Your repo is the source of truth."
65+
/>
66+
<FeatureCard
67+
icon={<WifiOff className="h-6 w-6 text-indigo-400" />}
68+
title="Offline-First"
69+
description="Full functionality without network. Local embeddings via fastembed means no cloud dependencies."
70+
/>
71+
<FeatureCard
72+
icon={<Network className="h-6 w-6 text-purple-400" />}
73+
title="Graph Intelligence"
74+
description="Traverse relationships between entities. Navigate your codebase structure naturally."
75+
/>
76+
<FeatureCard
77+
icon={<Database className="h-6 w-6 text-emerald-400" />}
78+
title="Hybrid Search"
79+
description="Combine vector semantic search with traditional BM25 keyword matching for best results."
80+
/>
81+
</div>
82+
</section>
83+
84+
<section className="px-4 py-16 mx-auto max-w-7xl sm:px-6 lg:px-8">
85+
<div className="flex flex-col md:flex-row items-end justify-between mb-8 gap-4">
86+
<div>
87+
<h2 className="text-3xl font-bold text-slate-100">The Helix Suite</h2>
88+
<p className="mt-2 text-slate-400"> specialized tools composing via standard interfaces</p>
89+
</div>
90+
</div>
91+
92+
<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
93+
<ToolCard
94+
icon={<Terminal className="h-8 w-8" />}
95+
name="hbd"
96+
tag="In Development"
97+
tagColor="bg-yellow-500/10 text-yellow-400 border-yellow-500/20"
98+
description="Git-first issue tracker for AI-supervised workflows. Bridge the gap between conceptual specs and tasks."
99+
/>
100+
<ToolCard
101+
icon={<BookOpen className="h-8 w-8" />}
102+
name="helix-docs"
103+
tag="Planned"
104+
tagColor="bg-slate-500/10 text-slate-400 border-slate-500/20"
105+
description="Local cache for fetched documentation. Give your agents instant access to library docs during research."
106+
/>
107+
<ToolCard
108+
icon={<Map className="h-8 w-8" />}
109+
name="helix-map"
110+
tag="Planned"
111+
tagColor="bg-slate-500/10 text-slate-400 border-slate-500/20"
112+
description="Codebase structure cache for fast exploration. Helps agents understand project architecture."
113+
/>
114+
<ToolCard
115+
icon={<Mail className="h-8 w-8" />}
116+
name="helix-mail"
117+
tag="Planned"
118+
tagColor="bg-slate-500/10 text-slate-400 border-slate-500/20"
119+
description="Agent-to-agent messaging and coordination system for multi-agent workflows."
120+
/>
121+
</div>
122+
</section>
123+
124+
<footer className="mt-auto py-12 border-t border-white/5 bg-black/20 text-center">
125+
<p className="text-slate-500 text-sm">
126+
Built with <span className="text-sky-500">HelixDB</span> & Next.js
127+
</p>
128+
</footer>
129+
</div>
130+
);
131+
}
132+
133+
function FeatureCard({ icon, title, description }: { icon: React.ReactNode, title: string, description: string }) {
134+
return (
135+
<div className="glow-card h-full flex flex-col">
136+
<div className="mb-4 p-3 bg-white/5 rounded-lg w-fit border border-white/5">
137+
{icon}
138+
</div>
139+
<h3 className="text-lg font-semibold text-slate-100 mb-2">{title}</h3>
140+
<p className="text-slate-400 text-sm leading-relaxed">{description}</p>
141+
</div>
142+
);
143+
}
144+
145+
function ToolCard({ icon, name, description, tag, tagColor }: { icon: React.ReactNode, name: string, description: string, tag: string, tagColor: string }) {
146+
return (
147+
<div className="glow-card group">
148+
<div className="flex items-start justify-between mb-4">
149+
<div className="p-3 bg-sky-500/10 text-sky-400 rounded-lg group-hover:bg-sky-500 group-hover:text-white transition-colors duration-300">
150+
{icon}
151+
</div>
152+
<span className={`px-2.5 py-0.5 rounded-full text-xs font-medium border ${tagColor}`}>
153+
{tag}
154+
</span>
155+
</div>
156+
<h3 className="text-xl font-bold text-slate-100 mb-2 group-hover:text-sky-400 transition-colors">{name}</h3>
157+
<p className="text-slate-400">{description}</p>
14158
</div>
15159
);
16160
}

docs/app/global.css

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,75 @@
11
@import 'tailwindcss';
22
@import 'fumadocs-ui/css/neutral.css';
33
@import 'fumadocs-ui/css/preset.css';
4+
5+
:root {
6+
--background: 222.2 84% 4.9%;
7+
--foreground: 210 40% 98%;
8+
9+
--card: 222.2 84% 4.9%;
10+
--card-foreground: 210 40% 98%;
11+
12+
--popover: 222.2 84% 4.9%;
13+
--popover-foreground: 210 40% 98%;
14+
15+
--primary: 199 89% 48%;
16+
--primary-foreground: 0 0% 100%;
17+
18+
--secondary: 217.2 32.6% 17.5%;
19+
--secondary-foreground: 210 40% 98%;
20+
21+
--muted: 217.2 32.6% 12%;
22+
--muted-foreground: 215 20.2% 65.1%;
23+
24+
--accent: 217.2 32.6% 17.5%;
25+
--accent-foreground: 210 40% 98%;
26+
27+
--destructive: 0 62.8% 30.6%;
28+
--destructive-foreground: 210 40% 98%;
29+
30+
--border: 217.2 32.6% 17.5%;
31+
--input: 217.2 32.6% 17.5%;
32+
--ring: 199 89% 48%;
33+
34+
--fd-background: hsl(var(--background));
35+
--fd-foreground: hsl(var(--foreground));
36+
--fd-primary: hsl(var(--primary));
37+
--fd-primary-foreground: hsl(var(--primary-foreground));
38+
--fd-muted: hsl(var(--muted));
39+
--fd-muted-foreground: hsl(var(--muted-foreground));
40+
--fd-accent: hsl(var(--accent));
41+
--fd-accent-foreground: hsl(var(--accent-foreground));
42+
--fd-border: hsl(var(--border));
43+
}
44+
45+
body {
46+
background-color: hsl(var(--background));
47+
background-image:
48+
linear-gradient(to right, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
49+
linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
50+
background-size: 4rem 4rem;
51+
background-position: center top;
52+
}
53+
54+
.text-gradient {
55+
@apply bg-clip-text text-transparent bg-gradient-to-r from-sky-400 via-cyan-400 to-indigo-400;
56+
}
57+
58+
.glow-card {
59+
@apply relative overflow-hidden rounded-xl border border-white/10 bg-white/5 p-6 transition-all duration-300 hover:border-sky-500/50 hover:bg-white/10 hover:shadow-[0_0_30px_-10px_rgba(14,165,233,0.3)];
60+
}
61+
62+
::-webkit-scrollbar {
63+
width: 10px;
64+
}
65+
::-webkit-scrollbar-track {
66+
background: hsl(var(--background));
67+
}
68+
::-webkit-scrollbar-thumb {
69+
background: hsl(var(--muted));
70+
border-radius: 5px;
71+
border: 2px solid hsl(var(--background));
72+
}
73+
::-webkit-scrollbar-thumb:hover {
74+
background: hsl(var(--primary) / 0.5);
75+
}

docs/app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const inter = Inter({
99
export default function Layout({ children }: LayoutProps<'/'>) {
1010
return (
1111
<html lang="en" className={inter.className} suppressHydrationWarning>
12-
<body className="flex flex-col min-h-screen">
12+
<body className="flex flex-col min-h-screen antialiased selection:bg-sky-500/30 selection:text-sky-200">
1313
<RootProvider>{children}</RootProvider>
1414
</body>
1515
</html>

docs/content/docs/architecture.mdx

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
title: Architecture
3+
description: How Helix Tools are structured
4+
---
5+
6+
# Architecture
7+
8+
Helix Tools share a common architecture that balances simplicity with power.
9+
10+
## Overview
11+
12+
```
13+
┌─────────────────────────────────────────────────────────────────────┐
14+
│ CLI Tools Layer │
15+
│ │
16+
│ hbd helix-docs helix-map helix-mail │
17+
│ (issues) (research) (codebase) (messaging) │
18+
│ │
19+
└──────────────────────────────┬──────────────────────────────────────┘
20+
21+
┌──────────────────────────────┴──────────────────────────────────────┐
22+
│ Shared Libraries │
23+
│ │
24+
│ helix-embed helix-sync helix-common │
25+
│ (fastembed) (git ops) (types, utils) │
26+
│ │
27+
└──────────────────────────────┬──────────────────────────────────────┘
28+
29+
┌──────────────────────────────┴──────────────────────────────────────┐
30+
│ HelixDB │
31+
│ │
32+
│ Graph Engine Vector Search BM25 Index LMDB Storage │
33+
│ (traversals) (HNSW) (text) (persistence) │
34+
│ │
35+
└─────────────────────────────────────────────────────────────────────┘
36+
```
37+
38+
## Data Flow
39+
40+
Every tool follows the same pattern:
41+
42+
### Write Path
43+
44+
1. User/agent creates or modifies data via CLI
45+
2. Changes are written to git-tracked files (Markdown/YAML)
46+
3. Data is indexed in HelixDB for fast querying
47+
4. Embeddings are generated asynchronously
48+
49+
### Read Path
50+
51+
1. Query comes in (keyword, semantic, or hybrid)
52+
2. HelixDB returns results using appropriate index
53+
3. Results are formatted for human or agent consumption
54+
55+
### Sync Path
56+
57+
When you `git pull` new changes:
58+
59+
1. File watcher detects changes in tracked directories
60+
2. Changed files are parsed and validated
61+
3. HelixDB is updated to match file state
62+
4. Embeddings are regenerated if text content changed
63+
64+
## Technology Stack
65+
66+
| Component | Technology | Why |
67+
|-----------|------------|-----|
68+
| Language | Rust | Performance, safety, HelixDB compatibility |
69+
| Database | HelixDB | Graph + vector + BM25 in one |
70+
| Embeddings | fastembed | Native Rust, offline, no server |
71+
| CLI | clap | Standard Rust CLI framework |
72+
| Git ops | git2 | Native Rust git bindings |
73+
| File watch | notify | Cross-platform file watching |
74+
75+
## Project Structure
76+
77+
```
78+
helix-tools/
79+
├── hbd/ # Issue tracker
80+
│ ├── specs/ # Kiro-style specifications
81+
│ └── src/ # Rust source
82+
83+
├── shared/ # Shared Rust crates (planned)
84+
│ ├── helix-embed/ # Embedding utilities
85+
│ └── helix-sync/ # Git sync utilities
86+
87+
├── docs/ # This documentation site
88+
89+
├── Cargo.toml # Workspace root
90+
└── README.md
91+
```

0 commit comments

Comments
 (0)