Files
dalcode-website/app/cli/page.tsx
T
Leon-in 97db9ee8c7 feat(site): redesign with product pages, ecosystem sections and pixel reveal
Add cli/code/office/platform/pricing pages, new home sections
(Ecosystem, FeatureGrid, Faq, WorkflowSteps, BottomCta, ProductEcosystem),
ScrollReveal and PixelTextReveal animation components, brand assets,
and expanded site-content.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 14:00:18 +08:00

152 lines
6.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next"
import Link from "next/link"
export const metadata: Metadata = {
title: "DAL CLI — 终端不退出,AI 已就位",
description:
"同样的意图引导和多模型路由,跑在你最顺手的 shell 里。带上自己的 Key,离线也能用。",
}
const FEATURES = [
{
title: "Shell 原生集成",
description: "不用打开新窗口。在你的终端里直接启动 DAL,上下文自动继承。",
},
{
title: "Task 管道",
description: "把复杂任务拆成管道式的步骤,每步结果可以 pipe 到下一步。",
},
{
title: "BYOK 直连",
description: "你的 API Key 直连供应商,CLI 不做中间人,数据不绕路。",
},
{
title: "离线可用",
description: "本地模型支持,网络断了也能继续工作。",
},
]
export default function CliPage() {
return (
<main>
<section className="section hero-v1">
<div className="w-layout-blockcontainer container-default w-container">
<div
data-w-id="cli-hero"
style={{ opacity: "0", filter: "blur(8px)" }}
className="inner-container _480px _100-tablet"
>
<div className="subtitle">DAL CLI</div>
<h1>退AI </h1>
<div className="mg-top-4x-extra-small">
<p>
shell Key线
</p>
</div>
<div className="mg-top-2x-extra-small">
<div
style={{
display: "inline-flex",
alignItems: "center",
gap: "8px",
padding: "8px 16px",
border: "1px solid var(--core--colors--neutral--400)",
borderRadius: "8px",
fontFamily: "monospace",
fontSize: "0.875rem",
color: "var(--font--colors--paragraph)",
}}
>
<span style={{ color: "var(--font--colors--title)" }}>$</span>
<span>npx dalcode</span>
</div>
</div>
</div>
</div>
</section>
<section className="section overflow-hidden">
<div className="w-layout-blockcontainer container-default w-container">
<div
data-w-id="cli-features-title"
style={{ opacity: "0", filter: "blur(8px)" }}
className="text-center"
>
<div className="subtitle">Features</div>
<div className="mg-top-4x-extra-small">
<h2> IDE </h2>
</div>
</div>
<div className="mg-top-large">
<div
data-w-id="cli-features-grid"
style={{ opacity: "0", filter: "blur(8px)" }}
className="corner-gradient-container"
>
<div className="border-wrapper">
<div
className="w-layout-grid"
style={{ gridTemplateColumns: "1fr 1fr" }}
>
{FEATURES.map((feat) => (
<div key={feat.title} className="card principles-card">
<div>
<h3 className="display-4">{feat.title}</h3>
<div className="mg-top-5x-extra-small">
<p>{feat.description}</p>
</div>
</div>
</div>
))}
</div>
</div>
<div data-wf--corner-gradient-outline--variant="base" className="corner-gradient-wrapper">
<div className="corner-gradient-horizontal top-left" />
<div className="corner-gradient-horizontal bottom-left" />
<div className="corner-gradient-horizontal top-right" />
<div className="corner-gradient-horizontal bottom-right" />
<div className="corner-gradient-vertical bottom-left" />
<div className="corner-gradient-vertical bottom-right" />
<div className="corner-gradient-vertical top-left" />
<div className="corner-gradient-vertical top-right" />
</div>
</div>
</div>
</div>
</section>
<section className="cta-section v1">
<div className="w-layout-blockcontainer container-default position-relative---z-index-1 w-container">
<div className="inner-container _430px">
<div className="subtitle">Get Started</div>
<div className="mg-top-3x-extra-small">
<h2 className="text-titles-dm"></h2>
</div>
<div className="mg-top-4x-extra-small">
<p className="text-paragraph-dm">
Key
</p>
</div>
<div className="mg-top-2x-extra-small">
<div className="buttons-row left">
<Link href="/contact" className="secondary-button w-inline-block">
<div className="button-content">
<div></div>
<div className="button-icon-wrapper secondary">
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square" />
</svg>
<div className="button-icon-bg bg-neutral-800" />
<div className="button-icon-bg-inside bg-neutral-600" />
</div>
</div>
</Link>
</div>
</div>
</div>
</div>
</section>
</main>
)
}