diff --git a/docs/index.html b/docs/index.html index d49a514..015e46c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -18,7 +18,7 @@ - + @@ -58,7 +58,6 @@ .hero .sub { font-size: 1.15rem; color: var(--text-secondary); margin-top: 16px; max-width: 600px; margin-inline: auto; } - .version-badge { text-align: center; margin: 24px 0 16px; } .hero .sub .size { color: var(--green); font-weight: 600; } .install-block { display: inline-flex; align-items: center; padding: 4px 4px 4px 20px; @@ -168,6 +167,22 @@ } .carousel .nav button:hover { border-color: var(--accent); color: var(--accent); } .carousel .nav button.active { background: var(--accent); color: #000; border-color: var(--accent); } + /* Hero carousel — terminal content is left-aligned even inside the centered hero */ + .hero-carousel { max-width: 680px; margin: 40px auto 0; text-align: left; } + .carousel .slide-img { text-align: center; } + .carousel .slide-img img { + display: block; margin: 12px auto 10px; max-width: 100%; max-height: 440px; + border-radius: 10px; border: 1px solid var(--border-subtle); + } + .carousel .slide .cap { + display: block; color: var(--text-secondary); font-style: normal; + font-family: var(--font-sans); font-size: 0.8125rem; line-height: 1.5; + } + .carousel .slide .cap strong { color: var(--text-primary); } + /* Long identity slide — cap height and scroll inside the terminal */ + .carousel .slide-scroll { max-height: 440px; } + .carousel .slide .hd { display: block; color: var(--accent); font-weight: 600; margin-top: 12px; } + .carousel .slide .bul { display: block; padding-left: 14px; text-indent: -14px; } /* ── Install steps ── */ .steps { list-style: none; } @@ -321,13 +336,155 @@

odek

~12 MB static binary · Zero frameworks.
Think, therefore act.

-
Latest release
go install github.com/BackendStack21/odek/cmd/odek@latest Get Started →
+ + +
@@ -367,7 +524,7 @@

See it in action

Real terminal output from real runs. Click through the examples.

- @@ -702,14 +859,18 @@

Everything else is documented

Go SDK GuideImport, Agent, Tools, memory, multi-turn sessions, examples ConfigurationConfig files, env vars, priority chain Providers & ModelsDeepseek, OpenAI, Anthropic, Ollama, vLLM, more + Prompt CachingCache markers for lower latency and cost on repeats MCP (Two-Way)Serve tools + connect to external MCP servers Memory SystemThree-tier facts, buffer, episodes Multi-Turn SessionsSave, resume, list, trim, cleanup SandboxingDocker isolation, config, security model + Docker ComposeRun odek in Docker with Compose, step by step SecurityPrompt injection defense, threat model Sub-AgentsTask decomposition, delegation protocol Self-LearningSkill detection, LLM enhancement, curation Web UIodek serve, WebSocket protocol, @ resources + Scheduled TasksNative cron — run agent tasks and deliver results + Telegram BotRun agent tasks from Telegram: voice, photos, sessions DevelopmentBuilding, testing, contributing @@ -765,11 +926,11 @@

Ship it

document.body.removeChild(ta); } -// ── Carousel ── -(function() { - const carousel = document.getElementById('carousel'); +// ── Carousels (drives every .carousel on the page) ── +document.querySelectorAll('.carousel').forEach((carousel) => { const slides = carousel.querySelectorAll('.slide'); - const nav = document.getElementById('carousel-nav'); + const nav = carousel.querySelector('.nav'); + if (!slides.length || !nav) return; let current = 0; slides.forEach((_, i) => { @@ -788,13 +949,13 @@

Ship it

nav.children[current].classList.add('active'); } - // Auto-advance every 8s + // Auto-advance every 8s; pause on hover let timer = setInterval(() => goTo((current + 1) % slides.length), 8000); carousel.addEventListener('mouseenter', () => clearInterval(timer)); carousel.addEventListener('mouseleave', () => { timer = setInterval(() => goTo((current + 1) % slides.length), 8000); }); -})(); +}); diff --git a/docs/telegram-demo.png b/docs/telegram-demo.png new file mode 100644 index 0000000..4691229 Binary files /dev/null and b/docs/telegram-demo.png differ