Open source inventory with intelligence. Print labels, scan to reveal contents, and optionally plug in your own AI to do the heavy lifting: snap a photo and it names the bin and lists every item.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 47 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_items
-
add_tags
-
batch_operations
-
checkout_item
-
clear_scan_history
-
create_area
-
create_bin
-
create_location
-
delete_area
-
delete_bin
-
delete_location
-
delete_tag_color
-
export_location_csv
-
export_location_json
-
get_activity_log
-
get_bin
-
get_scan_history
-
join_location
-
list_areas
-
list_bin_checkouts
-
list_location_checkouts
-
list_location_members
-
list_locations
-
list_pinned_bins
-
list_tag_colors
-
list_tags
-
list_trash
-
move_bin
-
permanent_delete_bin
-
pin_bin
-
record_scan
-
regenerate_invite_code
-
remove_item
-
remove_location_member
-
rename_area
-
rename_item
-
reorder_items
-
reorder_pinned_bins
-
restore_bin
-
return_item
-
search_bins
-
search_items
-
set_tag_color
-
unpin_bin
-
update_bin
-
update_location
-
update_member_role
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 848c6da · analyzer v33 · 2w ago
skills & prompt files 1
- agent-rules akifbayram-openbin-848c6da/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 1134
filesystem 29
- fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/attachments.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/attachmentsPlanGate.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/avatar.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/schema-parity.test.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/db/init.ts :2
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/index.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/backup.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/emailTemplateLoader.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/malwareScan.test.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/restore.test.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/aiPhotoLoader.ts :1
import fs from 'node:fs/promises'; - fs akifbayram-openbin-848c6da/server/src/lib/attachmentsCleanup.ts :1
import fs from 'node:fs/promises'; - fs akifbayram-openbin-848c6da/server/src/lib/backup.ts :2
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/config.ts :2
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/emailTemplateLoader.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/exportHelpers.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/malwareScan.ts :1
import { readFile } from 'node:fs/promises'; - fs akifbayram-openbin-848c6da/server/src/lib/photoCleanup.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/restore.ts :2
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/storage.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/lib/trashPurge.ts :1
import fs from 'node:fs/promises'; - fs akifbayram-openbin-848c6da/server/src/lib/uploadConfig.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/middleware/malwareScan.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/routes/admin/backup.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/routes/avatar.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/routes/export/csv.ts :1
import fs from 'node:fs'; - fs akifbayram-openbin-848c6da/server/src/routes/export/zip.ts :1
import fs from 'node:fs'; - fs (weak) akifbayram-openbin-848c6da/src/features/tour/__tests__/tourRegistry.test.ts :1
import fs from 'node:fs';
shell / exec 3
- shell akifbayram-openbin-848c6da/server/src/db/sqlite.ts :151
// PRAGMA statements must use exec(), not prepare() - shell akifbayram-openbin-848c6da/server/src/lib/backup.ts :1
import { execFile as execFileCb } from 'node:child_process'; - shell akifbayram-openbin-848c6da/server/src/lib/restore.ts :1
import { execFile as execFileCb } from 'node:child_process';
network 13
- net akifbayram-openbin-848c6da/server/mcp/src/api-client.ts :32
const res = await fetch(url, { - net akifbayram-openbin-848c6da/server/mcp/src/resolve-item.ts :15
* When item_id is provided, skips the bin fetch (server validates existence). - net akifbayram-openbin-848c6da/server/src/ee/billingClient.ts :49
const res = await fetch(url, { - net akifbayram-openbin-848c6da/server/src/ee/webhookOutbox.ts :79
const res = await fetch(`${config.managerUrl}${row.endpoint}`, { - net akifbayram-openbin-848c6da/server/src/lib/aiSsrf.ts :3
import { Agent } from 'undici'; - net akifbayram-openbin-848c6da/server/src/lib/backup.ts :53
await fetch(url, { - net akifbayram-openbin-848c6da/server/src/lib/malwareScan.ts :2
import { Socket } from 'node:net'; - net akifbayram-openbin-848c6da/server/src/routes/auth/oauth.ts :67
const tokenRes = await fetch('https://oauth2.googleapis.com/token', { - net akifbayram-openbin-848c6da/src/features/auth/RegisterPage.tsx :73
fetch(`/api/auth/invite-preview?code=${encodeURIComponent(inviteCode.trim())}`, { - net akifbayram-openbin-848c6da/src/features/settings/exportImport.ts :18
const resp = await fetch(url, { credentials: 'same-origin' }); - net akifbayram-openbin-848c6da/src/lib/api.ts :69
const res = await fetch(`${API_BASE}/api/auth/refresh`, { - net akifbayram-openbin-848c6da/src/lib/apiStream.ts :46
const res = await fetch(path, { - net akifbayram-openbin-848c6da/src/lib/qrConfig.ts :90
const res = await fetch('/api/auth/status');
secrets 5
- secrets akifbayram-openbin-848c6da/server/mcp/src/index.ts :15
const apiKey = process.env.OPENBIN_API_KEY; - secrets (weak) akifbayram-openbin-848c6da/server/src/__tests__/setup.ts :6
process.env.JWT_SECRET = 'test-secret'; - secrets (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-init.integration.test.ts :51
process.env.JWT_SECRET = 'test-secret'; - secrets (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :44
process.env.JWT_SECRET = 'test-secret'; - secrets akifbayram-openbin-848c6da/server/src/lib/config.ts :50
return process.env.ADMIN_PASSWORD || readSecretFile(process.env.ADMIN_PASSWORD_FILE);
database 25
- db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-concurrency.integration.test.ts :2
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-engine.integration.test.ts :2
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-init.integration.test.ts :1
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-queries.integration.test.ts :2
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :4
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-types.integration.test.ts :2
import type pg from 'pg'; - db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/userConsentMigration.test.ts :1
import Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0001_legacy.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0002_share_expires.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0004_tag_suggestion_prompt.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0007_subscription_state.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0008_deletion_lifecycle.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0010_relax_created_by_fks.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0011_clear_legacy_monthly_billing_period.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0012_reset_ai_credit_periods.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/0013_user_consent.ts :2
import type Database from 'better-sqlite3'; - db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0005_bin_item_soft_delete.test.ts :1
import Database from 'better-sqlite3'; - db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0007_subscription_state.test.ts :1
import Database from 'better-sqlite3'; - db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0008_deletion_lifecycle.test.ts :1
import Database from 'better-sqlite3'; - db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0011_clear_legacy_monthly_billing_period.test.ts :1
import Database from 'better-sqlite3'; - db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0012_reset_ai_credit_periods.test.ts :1
import Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/runner.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/migrations/types.ts :1
import type Database from 'better-sqlite3'; - db akifbayram-openbin-848c6da/server/src/db/postgres.ts :1
import pg from 'pg'; - db akifbayram-openbin-848c6da/server/src/db/sqlite.ts :1
import Database from 'better-sqlite3';
tool registrations 47
- get_activity_log akifbayram-openbin-848c6da/server/mcp/src/tools/activity.ts :49
- list_areas akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :18
- create_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :44
- rename_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :68
- delete_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :93
- batch_operations akifbayram-openbin-848c6da/server/mcp/src/tools/batch.ts :46
- search_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :52
- get_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :107
- create_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :132
- update_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :169
- delete_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :214
- list_trash akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :234
- restore_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :261
- permanent_delete_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :279
- list_pinned_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :294
- pin_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :321
- unpin_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :334
- reorder_pinned_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :347
- add_tags akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :364
- move_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :390
- checkout_item akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :29
- return_item akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :58
- list_bin_checkouts akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :91
- list_location_checkouts akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :121
- export_location_json akifbayram-openbin-848c6da/server/mcp/src/tools/export.ts :34
- export_location_csv akifbayram-openbin-848c6da/server/mcp/src/tools/export.ts :66
- search_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :25
- add_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :63
- remove_item akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :87
- rename_item akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :111
- reorder_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :142
- list_locations akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :52
- create_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :76
- update_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :96
- delete_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :132
- join_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :147
- list_location_members akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :169
- remove_location_member akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :199
- update_member_role akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :217
- regenerate_invite_code akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :237
- get_scan_history akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :17
- record_scan akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :51
- clear_scan_history akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :66
- list_tags akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :30
- list_tag_colors akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :64
- set_tag_color akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :91
- delete_tag_color akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :113
install hooks 1
- prepare akifbayram-openbin-848c6da/package.json :19
husky
declared dependencies 28
- clsx@^2.1.1
- html5-qrcode@^2.3.8
- jspdf@^4.2.0
- lucide-react@^0.563.0
- qr-code-styling@^1.9.2
- react@^18.3.1
- react-dom@^18.3.1
- react-router-dom@^6.30.3
- tailwind-merge@^3.4.0
- uuid@^13.0.0
- @biomejs/biome@^2.4.2
- @tailwindcss/vite@^4.2.1
- @testing-library/jest-dom@^6.9.1
- @testing-library/react@^16.3.2
- @testing-library/user-event@^14.6.1
- @types/react@^18.3.28
- @types/react-dom@^18.3.7
- @types/uuid@^10.0.0
- @vitejs/plugin-react@^5.1.4
- concurrently@^9.2.1
- happy-dom@^20.8.9
- husky@^9.1.7
- lint-staged@^16.4.0
- tailwindcss@^4.1.18
- typescript@^5.9.3
- vite@^6.4.1
- vite-plugin-pwa@^1.2.0
- vitest@^4.0.18