AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
오픈소스 이슈 트래킹과 에이전트 런타임을 하나의 작업공간에서 제공, 작업 할당·실행 증거 검토 가능
Open-source issue tracking and agent runtime in one workspace. Assign work to a person or a coding agent, then review the run evidence: branches, diffs, tests, exit codes, approvals.
개발 도구TypeScript · PythonGitHub @laravel42온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기One task tracker for people and AI agents, where a person always makes the final call.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Berry is a self-hosted, multi-workspace issue tracker whose assignees can be people or
AI agents. The core loop is: an issue is created, assigned to a person or an agent, the
agent runs and posts progress, and a person reviews and accepts the result before it is
done. Berry is the control plane for that loop — it owns workspaces, issues, comments,
reviews and the run ledger — and it never imports a model SDK itself
(ADR-0014).README 전문 보기 ↗Berry is a self-hosted, multi-workspace issue tracker whose assignees can be people or AI agents. The core loop is: an issue is created, assigned to a person or an agent, the agent runs and posts progress, and a person reviews and accepts the result before it is done. Berry is the control plane for that loop — it owns workspaces, issues, comments, reviews and the run ledger — and it never imports a model SDK itself (ADR-0014).
Every workspace is provisioned with a small organization of role agents (product, engineering, quality, platform, growth and leadership roles, plus an Orchestrator) with their own contracts, autonomy levels and review rules. Agents can plan, implement and propose work, but they cannot mark an issue done or merge anything — release is always a human decision. See PRODUCT.md for the product-level description.
| Path | What |
|---|---|
server-ts | TypeScript product server, its migrations, and the agent runtime sources |
frontend | Next.js App Router UI |
packages/plugin-sdk | SDK for building Berry plugins |
docs | Product brief, ADRs, API contract, design system, and AI runtime matrix |
The server, frontend, plugin SDK, desktop and mobile packages form a pnpm workspace and do not share a validation workflow (different formatters and linters) — see AGENTS.md for the per-package rules.
The server serves identity, workspaces, boards, issues, comments, dependencies, reviews,
goals, projects, attachments, agents, the organization, work proposals, runs, runtimes,
integrations, approvals, the inbox, conversations, search, saved views, catalogs, plans,
autopilots, skills, MCP servers, plugins, usage and dashboards, editor AI, the task-token
agent-tools API, the public /v1 API, and the realtime event streams. GET /api/v1/config
reports only the capabilities this deployment actually has (for example, agentExecution
is only true when an agent runtime target is configured), so the UI switches off what is
missing rather than offering it. server-ts/SCOPE.md records what is deliberately left
unserved.
Berry connects supported AI subscriptions so teams can coordinate agents using accounts they already pay for. Subscription access and limits remain with the provider. Native/API execution is a separate option; a disconnected subscription does not silently fall back to API billing. See AI runtimes.
Berry can run directly on the host. Optional Docker development and Dokploy deployment stacks are documented in deploy/local and deploy/dokploy.
| Dependency | Purpose |
|---|---|
| PostgreSQL 16 | Berry's durable product state, reached through DATABASE_URL |
| AWS S3 (or an S3-compatible store) | Artifact storage, through the S3_* variables |
| AWS Bedrock AgentCore Runtime | Where agents run (ADR-0014) |
| Kilo AI gateway (optional) | Native model calls in Berry's model tiers instead of straight to Bedrock (ADR-0017) |
| User AI subscription | Supported official CLIs on the workstation that runs Berry (matrix and setup); connected subscription runs do not require model API billing |
Provider keys and object-store credentials are server-side only, never under a
NEXT_PUBLIC_* name.
Prerequisites: Node 22 (with --experimental-strip-types), pnpm 12.5.1 (the version pinned in package.json), a
PostgreSQL 16 instance you run yourself, and Python 3 for repository checks.
cp .env.example .env
pnpm install
pnpm db:migrate # forward-only, under an advisory lock; reads DATABASE_URL
pnpm db:seed # idempotent development dataset
pnpm dev:server # http://127.0.0.1:4000
cd frontend && cp .env.example .env.local && cd ..
pnpm dev:frontend # http://127.0.0.1:3000
Check the server is up:
curl http://127.0.0.1:4000/health
curl http://127.0.0.1:4000/ready
curl http://127.0.0.1:4000/api/v1/config
With APP_ENV=development and AUTH_ALLOW_PASSWORDLESS_LOGIN (default on),
POST /api/v1/auth/dev-login signs in an existing user by email without GitHub. For
real sign-in, configure a GitHub OAuth App (BERRY_AUTH_GITHUB_CLIENT_ID/SECRET).
Run the checks:
pnpm typecheck:server
pnpm test:server # DB-backed tests self-skip without BERRY_TEST_DATABASE_URL
pnpm test:plugin-sdk && pnpm typecheck:plugin-sdk
cd frontend && pnpm lint && pnpm build:check # build:check writes .next-verify, not .next
Never point any of this at your everyday development database: creating a workspace
provisions a protected Orchestrator agent that cannot be deleted, so a schema-only copy
is the right target for BERRY_TEST_DATABASE_URL. See server-ts/ROUTING.md.
Berry queues a task (from an assignment, a mention, chat, an autopilot, a quick action, the
agent builder, or a completion request such as the planner's calls), a dispatcher claims it under a lease, and the task is sent as a
TaskEnvelope to an agent runtime — either an AWS Bedrock AgentCore Runtime, or the same
runtime image reached over plain HTTP. Inside that runtime, a Strands Agents SDK loop
calls the model — Amazon Bedrock directly by default, or the Kilo AI gateway — and
streams lifecycle events (task.started, task.message, task.usage, task.completed,
task.failed) back to Berry, which is the only writer of run state. The agent acts on
Berry exclusively through /api/v1/agent-tools/* with a short-lived, task-scoped token —
never through the database directly.
For agent execution, connect a subscription AI runtime (Kiro, Claude Code, Codex, or another workstation CLI) and place its models on Berry tiers in Settings → Model tiers. AgentCore is the AWS compute host for the runtime image, not a model provider:
server-ts/sandbox/agentcore/deploy.sh builds it, pushes it
to ECR and publishes it as an AgentCore Runtime; it needs account-owner AWS credentials
and Docker buildx on the machine running it. Point BERRY_AGENTCORE_RUNTIME_ARN at the
ARN it prints. (Alternatively, set BERRY_AGENT_RUNTIME_URL to call the same image over
HTTP without AgentCore.)BERRY_RUNTIME_CALLBACK_URL (or
BERRY_PUBLIC_URL), which AWS must be able to reach — a tunnel when developing locally.S3_BUCKET so a run's files have somewhere to land, and INTEGRATION_ENCRYPTION_KEY
if the run needs GitHub or plugin credentials.There is no native Bedrock or Kilo model path. Completions and agent runs
fail until a subscription is connected. Tiers remain: each agent is on
BerryMax, BerryXHigh, BerryHigh, BerryMid or BerryLow, and a run uses the
first connected model on that tier unless the task names one. Kiro runs as
kiro-cli on this workstation; it does not run in the runtime image.
Without a runtime target, agentExecution reports false in GET /api/v1/config and
the dispatcher, scheduler and review gate simply do not start — the rest of Berry works
normally.
Documentation website — searchable product guides, setup, operations, and API reference; preview with npm --prefix documentation run dev after installing its dependencies.
AGENTS.md — the authoritative short guide for coding agents working in this repo
PRODUCT.md — product description: capabilities, the organization, reviews and proposals
Server scope and routing
Berry is licensed under the GNU Affero General Public License v3. See LICENSE.
Berry's own code stays AGPL-3.0-only.
The web interface began as the MIT-licensed Circle template; that notice stays in frontend/LICENSE.md.
Shipped dependencies may be MIT, Apache-2.0, or Elastic License 2.0. Elastic License 2.0 code may not be offered as a managed service, may not have its notices or license-key checks stripped, and is not relicensed to AGPL.