neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A framework for composable, self-hosted voice AI agents — bring a persona YAML and Python skills; Huxley handles the rest.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A framework for composable, self-hosted voice AI agents — bring a persona YAML and Python skills; Huxley handles the rest.
Open http://localhost:5174, hold the button, speak.README 전문 보기 ↗A framework for composable, self-hosted voice AI agents — bring a persona YAML and Python skills; Huxley handles the rest.
Terminal 1 — server:
git clone https://github.com/ma-r-s/Huxley.git && cd Huxley
echo "HUXLEY_OPENAI_API_KEY=sk-..." > server/runtime/.env
uv sync && cd server/runtime && uv run huxley
Terminal 2 — browser client:
cd clients/pwa && bun install && bun dev
Open http://localhost:5174, hold the button, speak.
persona.yaml, get a different agent; voice, language, personality, skill list, all in one filenever_say_no, confirm_destructive, etc.; skills opt in to respecting themctx.inject_turn())flowchart LR
P["persona.yaml\nidentity · constraints · skills"] --> R
subgraph R["Huxley Runtime"]
direction TB
SES[session] --> TC[turn coordinator]
TC --> FM[focus manager]
end
R --> V["Voice provider\nOpenAI Realtime"]
R --> SK["Skills (huxley_sdk)"]
R --> C["Client\nbrowser · ESP32 · any WebSocket"]
Skills and the voice provider never communicate directly — all routing goes through the runtime. The focus manager prevents audio collisions between model speech, skill audio streams, and full-duplex input claims.
All 9 are independently published to PyPI; install any of them with uv add huxley-skill-<name> and enable with one line in persona.yaml.
| Skill | What it does |
|---|---|
huxley-skill-audiobooks | Local .m4b/.mp3 library — pause, resume, rewind, position persisted |
huxley-skill-radio | HTTP/Icecast radio via ffmpeg, buffered with auto-reconnect |
huxley-skill-news | Weather (Open-Meteo) + headlines (Google News RSS), cached |
huxley-skill-search | DuckDuckGo web search, no API key needed |
huxley-skill-timers | Countdown timers (relative — "in 10 minutes"), SQLite-persisted |
huxley-skill-reminders | Calendar-time reminders with retry escalation if unacknowledged |
huxley-skill-system | Volume control, current time |
huxley-skill-telegram | Full-duplex voice calls + text messages via Telegram |
huxley-skill-stocks | Voice-controlled stock quotes via Alpha Vantage — the reference skill |
Browse the registry feed at huxley-registry/index.json or its human-readable mirror at docs/skills/index.md. The SDK every skill builds against is huxley-sdk — uv add huxley-sdk if you're writing a new one.
Skills are Python packages registered via entry points. The framework never imports skill code directly — it loads them at startup through huxley.skills entry points.
from huxley_sdk import ToolDefinition, ToolResult, SkillContext
class LightsSkill:
@property
def name(self) -> str: return "lights"
@property
def tools(self) -> list[ToolDefinition]:
return [ToolDefinition(
name="set_lights",
description="Turn the lights on or off.",
parameters={"type": "object", "properties": {"on": {"type": "boolean"}}, "required": ["on"]},
)]
async def setup(self, ctx: SkillContext) -> None:
self._api_key = ctx.config["api_key"]
async def handle(self, tool_name: str, args: dict) -> ToolResult:
on = args["on"]
await call_lights_api(self._api_key, on)
return ToolResult(output="Lights turned on." if on else "Lights turned off.")
async def teardown(self) -> None: ...
ToolResult.output is a string the voice model reads aloud — what the agent says after using the tool.
# pyproject.toml
[project.entry-points."huxley.skills"]
lights = "my_package.skill:LightsSkill"
Enable in persona.yaml:
skills:
lights:
api_key: "..."
docs/skills/README.md: every primitive (ctx.storage, ctx.secrets, ctx.inject_turn, InputClaim, ...).docs/skills/authoring.md: annotates huxley-skill-stocks line by line.docs/skills/installing.md: how to drop a skill into a persona.docs/skill-marketplace.md: v1/v2 split, on-disk shapes, conventions you can rely on.brew install opus on macOS, apt install libopus0 on Debian/Ubuntu (Orange Pi). Without it the server still runs and serves those clients PCM.Linux and macOS supported. Windows untested.
uv sync --all-packages
uv run ruff check server/ && uv run mypy server/sdk/src server/runtime/src
uv run pytest server/
cd clients/pwa && bun run check
Full documentation at huxley.ma-r-s.com/docs — architecture, SDK reference, persona guide, wire protocol, observability, and roadmap.
MIT License · pre-1.0 — runs end-to-end, in daily use