{"id":297,"date":"2026-07-30T11:32:47","date_gmt":"2026-07-30T03:32:47","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/30\/2026-07-29\/"},"modified":"2026-07-30T11:32:47","modified_gmt":"2026-07-30T03:32:47","slug":"2026-07-29","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/30\/2026-07-29\/","title":{"rendered":"PH\u70ed\u699c | 2026-07-29"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-07-29<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-07-29<\/h1>\n<p>    <!-- \u5c55\u793aapp\u5361\u7247 --><\/p>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#1<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/7JDFCGARSHV32N\" class=\"app-title\">Prelint<\/a><\/p>\n<div class=\"one-liner\">Prevent product drift in AI-written code<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">500<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Prelint \u662f\u4e00\u4e2aAI\u4ee3\u7801\u5ba1\u67e5\u5de5\u5177\uff0c\u4e13\u95e8\u5728AI\u751f\u6210\u4ee3\u7801\u7684PR\u9636\u6bb5\uff0c\u5bf9\u7167\u67b6\u6784\u51b3\u7b56\u8bb0\u5f55\uff08ADR\uff09\u3001\u6587\u6863\u548c\u5386\u53f2\u51b3\u7b56\uff0c\u9632\u6b62\u4ea7\u54c1\u504f\u79bb\u539f\u6709\u8bbe\u8ba1\u65b9\u5411\uff0c\u89e3\u51b3\u201c\u4ee3\u7801\u5199\u5bf9\u4e86\uff0c\u4f46\u4ea7\u54c1\u5efa\u9519\u4e86\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/452c6376-5262-4400-929e-0b9befe4b96e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/97a72d41-0fd9-4d8d-95f7-33b5972480d7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/83cfbb87-d5e9-4690-a5fd-28316a8c2b1d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/a1585687-af71-4e6a-addf-66453fb07920.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/u-ZZTCxKkrc\"><source src=\"https:\/\/youtu.be\/u-ZZTCxKkrc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u6f02\u79fb<\/span><br \/>\n            <span class=\"tag\">ADR\u5f3a\u5236\u6267\u884c<\/span><br \/>\n            <span class=\"tag\">\u67b6\u6784\u51b3\u7b56\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u51b3\u7b56\u65e5\u5fd7<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u8d28\u91cf<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406\u6cbb\u7406<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">GitHub\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7AI<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u6700\u5173\u5fc3\uff1a1\uff09\u4ea7\u54c1\u662f\u5426\u9700\u8981\u6587\u6863\u5b8c\u7f8e\u624d\u6709\u6548\uff1f2\uff09\u5982\u4f55\u5904\u7406\u6587\u6863\u8fc7\u65f6\u548c\u77db\u76fe\uff1f3\uff0940%\u4fee\u590d\u7387\u7684\u5177\u4f53\u573a\u666f\u548c\u6307\u6807\u53ef\u9760\u6027\u30024\uff09\u80fd\u5426\u4ece\u652f\u6301\u5de5\u5355\u7b49\u975e\u5de5\u7a0b\u6e90\u63d0\u53d6\u51b3\u7b56\u30025\uff09\u5982\u4f55\u533a\u5206AI\u7684\u201c\u65e0\u610f\u63a8\u65ad\u201d\u548c\u201c\u6545\u610f\u51b3\u7b56\u201d\u3002\u5efa\u8bae\uff1a\u5e94\u4e0e\u5ba2\u670d\u5de5\u5177\u96c6\u6210\uff0c\u51cf\u5c11\u8bef\u62a5\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Prelint\u7cbe\u51c6\u6355\u6349\u4e86\u4e00\u4e2a\u65b0\u5174\u4f46\u4e25\u91cd\u7684\u75db\u70b9\uff1a\u5728AI\u7f16\u7801\u4ee3\u7406\u5927\u89c4\u6a21\u90e8\u7f72\u540e\uff0c\u201c\u5408\u89c4\u6027\u201d\u7684\u8303\u7574\u4ece\u4ee3\u7801\u8d28\u91cf\u6269\u5c55\u5230\u4e86\u4ea7\u54c1\u610f\u56fe\u3002\u5f53AI\u4ee510\u500d\u901f\u5ea6\u751f\u6210\u4ee3\u7801\u65f6\uff0c\u5b83\u53ef\u80fd\u65e0\u610f\u8bc6\u5730\u5f15\u5165\u672a\u7ecf\u6388\u6743\u7684\u4f9d\u8d56\u3001\u7be1\u6539\u4e1a\u52a1\u89c4\u5219\uff0c\u751a\u81f3\u5728\u4ee3\u7801\u4e2d\u201c\u53d1\u660e\u201d\u529f\u80fd\u2014\u2014\u8fd9\u4e9b\u201c\u6b63\u786e\u4f46\u9519\u8bef\u201d\u7684\u4ee3\u7801\uff0c\u4f20\u7edf\u6280\u672f\u5ba1\u67e5\u548cCI\u7ba1\u9053\u5b8c\u5168\u65e0\u80fd\u4e3a\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Prelint\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u5c06\u81ea\u5df1\u5b9a\u4f4d\u4e3a\u201c\u51b3\u7b56\u8d26\u672c\u201d\u800c\u975e\u7b80\u5355\u7684\u4ee3\u7801\u68c0\u67e5\u5668\u3002\u5b83\u901a\u8fc7\u6784\u5efa\u4e1a\u52a1\u672c\u4f53\u8bba\uff0c\u7406\u89e3\u4e0d\u540c\u8bed\u5883\u4e0b\u51b3\u7b56\u7684\u201c\u91cd\u529b\u201d\uff08\u5982CEO\u7684\u4e00\u53e5\u627f\u8bfa vs \u5b9e\u4e60\u751f\u7684\u4ee3\u7801\u6ce8\u91ca\uff09\uff0c\u8fd9\u6bd4\u7b80\u5355\u7684\u201c\u6587\u6863vs\u4ee3\u7801\u201d\u5339\u914d\u9ad8\u51fa\u4e00\u4e2a\u7ef4\u5ea6\u3002\u517640%\u7684PR\u95ee\u9898\u6355\u83b7\u7387\uff0c\u867d\u53d7\u9650\u4e8e\u56e2\u961f\u89c4\u6a21\u3001\u884c\u4e1a\u548c\u6587\u6863\u6210\u719f\u5ea6\uff0c\u4f46\u5728\u9ad8\u5ea6\u5408\u89c4\u7684\u5782\u76f4\u884c\u4e1a\uff08\u5982\u533b\u7597\u3001\u91d1\u878d\uff09\u4e2d\u4ef7\u503c\u6781\u5927\u2014\u2014\u90a3\u91cc\u4e00\u4e2a\u672a\u6388\u6743\u7684\u4f9d\u8d56\u5c31\u53ef\u80fd\u5bfc\u81f4\u5ba1\u8ba1\u707e\u96be\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u6700\u5927\u6311\u6218\u5728\u4e8e\uff1a\u5f53\u6587\u6863\u672c\u8eab\u5c31\u662f\u6df7\u4e71\u548c\u77db\u76fe\u7684\uff0cAI\u5982\u4f55\u5efa\u7acb\u53ef\u9760\u7684\u201c\u51b3\u7b56\u8d26\u672c\u201d\uff1fPrelint\u63d0\u51fa\u7684\u201c\u81ea\u52a8\u68c0\u6d4b\u77db\u76fe\u4e0e\u53d6\u4ee3\u201d\u65b9\u6848\u542c\u8d77\u6765\u8bf1\u4eba\uff0c\u4f46\u672c\u8d28\u4e0a\u662f\u7528\u4e00\u4e2aAI\u7cfb\u7edf\u53bb\u6821\u6b63\u53e6\u4e00\u4e2aAI\u7cfb\u7edf\u5e26\u6765\u7684\u6df7\u4e71\uff0c\u8fd9\u53ef\u80fd\u5728\u6e90\u5934\u4e0a\u5f15\u5165\u65b0\u7684\u201c\u51b3\u7b56\u6f02\u79fb\u201d\u3002\u6b64\u5916\uff0c\u5b8c\u5168\u4f9d\u8d56\u6b64\u7c7b\u5de5\u5177\u53ef\u80fd\u8ba9\u56e2\u961f\u5728\u6587\u6863\u7ef4\u62a4\u4e0a\u66f4\u61d2\u6563\uff0c\u53cd\u800c\u52a0\u5267\u201c\u5783\u573e\u8fdb\uff0c\u5783\u573e\u51fa\u201d\u7684\u95ee\u9898\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u957f\u8fdc\u770b\uff0cPrelint\u7684\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u5bf9\u201cAI\u6cbb\u7406\u201d\u7684\u63a2\u7d22\u3002\u5b83\u4e0d\u662f\u7b80\u5355\u7684\u5de5\u5177\uff0c\u800c\u662f\u4e00\u79cd\u8bd5\u56fe\u8ba9AI\u884c\u4e3a\u5177\u5907\u201c\u5ba1\u8ba1\u8ddf\u8e2a\u201d\u7684\u5c1d\u8bd5\u3002\u4f46\u82e5\u60f3\u6210\u4e3a\u884c\u4e1a\u6807\u51c6\uff0c\u5b83\u5fc5\u987b\u8bc1\u660e\uff1a\u5728\u6587\u6863\u6781\u5ea6\u4e0d\u5b8c\u7f8e\u7684\u73b0\u5b9e\u4e16\u754c\u4e2d\uff0c\u5176\u201c\u51b3\u7b56\u8d26\u672c\u201d\u7684\u51c6\u786e\u7387\u548c\u53ec\u56de\u7387\u80fd\u6301\u7eed\u8d85\u8d8a\u4eba\u5de5\u5ba1\u67e5\uff0c\u800c\u975e\u6210\u4e3a\u53e6\u4e00\u4e2a\u9700\u8981\u4e13\u5bb6\u7cbe\u5fc3\u8c03\u6559\u7684\u201cAI\u73a9\u5177\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Prelint<\/span>\n                <\/div>\n<div class=\"comment-content\">AI writes your code at 10\u00d7 speed. Prelint makes sure it&#8217;s the right code &#8211; it reviews every PR against your ADRs, docs and past decisions, and catches product drift before it ships. On teams using several AI reviewers, ~40% of the issues fixed before merge are caught by Prelint.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt, I\u2019m Wojtek, one of the founders of Prelint.<\/p>\n<\/p>\n<p>Coding agents now produce more code than most teams can properly review. The obvious risk is bad code, but the more dangerous risk is good code that quietly builds the wrong product.<\/p>\n<\/p>\n<p>We saw this repeatedly in large production projects when we started using agents. A change would clear technical review, pass CI, yet still skip the transactional outbox pattern, introduce an unapproved dependency, change a permission rule or invent a business requirement. Nobody had made that decision, but it was now part of the product.<\/p>\n<\/p>\n<p>Prelint catches these decisions before they ship. It reads each change alongside your specifications, tickets and existing product context, then explains what the agent decided, what the consequences are and how difficult the choice will be to reverse. Your team can approve, correct or replace the decision, and Prelint carries that context into the next piece of work.<\/p>\n<\/p>\n<p>If you work with ADRs, our clients say it is the best tool they found for enforcing them with agents. <strong>On teams running Prelint alongside other AI reviewers, ~40% of the review comments that actually get fixed come from Prelint.<\/strong><\/p>\n<\/p>\n<p>We started in GitHub and now support CLI and MCP, allowing agents to check product decisions while they work instead of waiting for a human to discover the problem at the end.<\/p>\n<\/p>\n<p><strong>Prelint is not another technical code reviewer. <\/strong>These tell you whether the code works. <strong>Prelint tells you whether you should be building it.<\/strong><\/p>\n<\/p>\n<p>If coding agents are contributing to your product, <a href=\"https:\/\/prelint.com\/?ref=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>sign up at https:\/\/prelint.com<\/strong><\/a>, connect a GitHub repo and see what they&#8217;ve been deciding on your behalf. Then tell us what you like and what you&#8217;d love to see on top of it!<\/p>\n<p>Use code: PH100 to get 100$ in additional free credits<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>42<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@wojtekszkutnik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wojtekszkutnik<\/a>&nbsp;congrats on the launch<br \/>upvoted<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@wojtekszkutnik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wojtekszkutnik<\/a>&nbsp;Really interesting concept. How does Prelint distinguish between an intentional product decision and something the AI agent simply inferred on its own? Curious how you handle that without generating too many false positives.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@wojtekszkutnik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wojtekszkutnik<\/a>&nbsp;Awesome! I&#8217;ve actually been having this conversation on social media these past few days. In my opinion, human code review should be gradually replaced by tools like this. I think a good methodology would be to gather functional requirements with their different scenarios and ensure that the tests fully cover them. Have you considered this as a possible workflow for the tool?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>My honest question: how much setup does this need before it&#8217;s useful? A lot of &#8220;review your PRs against your docs&#8221; tools sound great until you realize the doc structure has to be near-perfect first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>15<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks for the thoughtful question, Ramish! My honest answer: it has a big impact from the start but it compounds over time. <\/p>\n<\/p>\n<p>We&#8217;re a different animal to most reviewers &#8211; we think of ourselves as a &#8220;decision ledger&#8221; ultimately more than &#8220;check code vs docs&#8221; &#8211; I honestly think most technical code reviewers that can do it will get commoditized by the next generations of the frontier models &#8211; same as all the &#8220;company brain&#8221; startups. <\/p>\n<\/p>\n<p>With us the main advantage is that it&#8217;s not a &#8220;local skill run&#8221; that semantically checks your code against context but we construct a whole &#8220;decision ledger&#8221; describing your businesses ontology. <\/p>\n<\/p>\n<p>Why it&#8217;s helpful from the start: <\/p>\n<ul>\n<li>\n<p>There are a lot of things that our pipeline understands from your code, built in docs and behaviors &#8211; eg we will understand your compliance requirements even if you don&#8217;t specifically mention HIPAA, SOC or ISO, we extract code design patterns that we later enforce. <\/p>\n<\/li>\n<li>\n<p>Prelint also understands the gravity and authority of statements &#8211; so compared to a simple grep job it can weigh decisions made in different contexts differently &#8211; eg it will put a different weight on decisions made by agents vs humans. <\/p>\n<\/li>\n<li>\n<p>We do provide some technical code feedback too, but the experience you get from the start is a bit different from other &#8220;review&#8221; startups &#8211; in some cases it&#8217;s less &#8220;we&#8217;ll compare your code to your ticket and see if it matches&#8221; &#8211; this is a prompt not a startup in my opinion and more &#8220;what did decisions did the agent make on my behalf that would ring the bells if I ever knew about them?&#8221; <\/p>\n<\/li>\n<\/ul>\n<p>Why it compounds:<\/p>\n<ul>\n<li>\n<p>As you work with Prelint we naturally absorb everything happening in your company &#8211; Slack conversations, meetings &#8211; and build an understanding of the product being built based on microinteractions<\/p>\n<\/li>\n<li>\n<p>Your users and agents can expand our decision ledger through our CLI and visual interface  &#8211; so every time a small coding session slightly changes the direction, we will first flag it, but also allow the agent and human to elaborate on the decisions being make and include it as part of the ledger <\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>6<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Multiple AI reviewers catching different things makes sense, no single model sees everything a fast-moving codebase actually needs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>15<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Peter! The reviewer is the first surface we deployed (it&#8217;s a touchpoint that agents and humans alike already understand so it was a very convenient start) but we see ourselves as a decision ledger that your agents can query through our CLI and also non technical humans can work with. <\/p>\n<\/p>\n<p>Of course for some projects you can run a Claude skill and you can be just fine but the moment you deploy agents at scale (especially larger headless fleets) every % of efficiency counts and with the projects that currently use Prelint we often detect as much as 40% more relevant issues than if you just run Claude locally. In my experience even 5% moves the needle so it&#8217;s a pretty big win. <\/p>\n<\/p>\n<p>And it&#8217;s much more than a local prompt &#8211; our biggest strength is the pipeline that understands your docs and addresses duplicates and inconsistencies &#8211; this problem is a bit more complicated than it looks given that the same sentence written in different contexts (eg the CEO vs intern) can have very different gravity and meaning. So giving agents access to these &#8220;product breadcrumbs&#8221; explaining the &#8220;why&#8221; yields much better results. Running a Claude prompt works for the first 10% of the issues and is quite trivial but that&#8217;s not what we do here &#8211; hence the much better results. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>5<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The stat about catching 40% of pre-merge issues on teams already running multiple AI reviewers is the part I&#8217;d want to see broken down further. What kinds of issues specifically? Style violations are cheap to catch. Actual drift from architectural intent is a completely different, much harder category and I&#8217;d bet that&#8217;s where the real value is.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>14<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Madison! We practically don&#8217;t catch &#8220;style violations&#8221; &#8211; we&#8217;re centered around architecture drift, breaking design patterns, and very often the agents just plain going in a product direction that makes sense in their limited context but not in the context of the company the humans are trying to build. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;d be curious how noisy this gets in practice. Docs and ADRs drift out of date constantly, how do you keep the source of truth from becoming stale itself?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">Thanks for a thoughtful comment, Michael!<\/p>\n<p>We have several surfaces:<br \/>\n&#8211; Our pipeline detects contradictions and supersessions, so we do a lot of heavy lifting for you in the background &#8211; very often it&#8217;s obvious what the decision actually is but you&#8217;re just suffering from context poisoning where a doc wasn&#8217;t updated or deleted. In such a case your AIs will see it through our CLI and interface and address the contradictions in the process.<\/p>\n<p>&#8211; Prelint is usually the reason why the ADRs and docs drift way less: we surface violations that are often impossible to spot for a Claude skill running basic checks but easily enforced through our ledger<\/p>\n<p>&#8211; Many companies consider Prelint&#8217;s decision ledger &#8211; in this case you can easily keep an up to date copy in docs or whatever format you like by working with our CLI<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The 40% number is the kind of stat I want to stress-test rather than just admire. Is that measured across teams with mature, well-maintained ADRs or does it hold up even when documentation is patchy, which is the more common situation? I ask because a lot of tooling in this space performs great in the demo and struggles the moment real docs are inconsistent or out of date. Would genuinely like to see that breakdown.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>We&#8217;re challenging it as hard as you are Almuddin! Thanks for the comment. <\/p>\n<\/p>\n<p>Honestly, it depends on so many factors &#8211; size of the team, documentation quality and segmentation but sometimes even the industry of the company. Many of our customers at the moment are in very vertical industries where the ontologies and guardrails to enforce are especially tight. I wouldn&#8217;t expect this to be the same for a B2B SaaS startup and a complex AI energy company<\/p>\n<\/p>\n<p>40% is a world-class number that I doubt any tool can hold across <strong>all<\/strong> startups out there and that&#8217;s not the goal. When I originally launched Prelint, I though 10% would be an amazing result &#8211; back then my thought was, with headless fleets, if you move the needle even just a little bit, it pushes the human interaction forward so your agents can get the changes across a couple more hurdles before you need to look at them. <\/p>\n<\/p>\n<p>Now that we see it in the real world, the goal is less &#8220;be the best product review tool&#8221; and more &#8220;build a decision ledger&#8221; so we expand way beyond code review touchpoints. Many agents interact with our CLI querying the &#8220;product breadcrumbs&#8221; we create based on the products so in this case a lower review-stage impact could be even better from the product side &#8211; it would mean our CLI did a great job so at the PR-stage the product is already in better shape. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>6<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! I\u2019ve run into this exact issue with AI agents: the code works, but it still builds the wrong thing. What kind of specs work best with Prelint?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Philip! Good question. Prelint is good at a couple things:<\/p>\n<ul>\n<li>\n<p>If you have structured ADRs in your repo it will enforce them with code and docs changes (eg Markdown in docs\/adrs\/)<\/p>\n<\/li>\n<li>\n<p>If (like most projects) your specs and docs are a mess between Slack, Google Docs, docs-in-code, undocumented decisions in code, Prelint ingests all your data sources and builds a decision ledger based on that &#8211; it surfaces all the collisions, supersessions (eg someone writing a specs 3 months ago but then contradicting it on a call one month after) &#8211; it&#8217;s used in our reviewers but we also have a CLI that your coding and non-coding AIs can use to find the ground truth about the product and the business<\/p>\n<\/li>\n<li>\n<p>We&#8217;re also pretty good at understanding implicit decisions made in your code &#8211; eg we will understand if you&#8217;re HIPAA or SOC compliant even if you don&#8217;t state it directly, same with infrastructure as code &#8211; we understand the patterns even if you don&#8217;t document them<\/p>\n<\/li>\n<\/ul>\n<p>If you decide on ADRs in your repo (which is one of the best starting points &#8211; if you don&#8217;t have them, Prelint can help you structure and enforce them, and if you have them, it will work out of the box), a couple tips:<\/p>\n<p>&#8211; forget everyone telling you ADRs are immutable, update ADRs when the decision changes &#8211; you don&#8217;t want context poisoning from superseded statements<\/p>\n<p>&#8211; keep in repo as markdown, one decision per file<\/p>\n<p>&#8211; keep them to one paragraph but capture rejected alternatives and context &#8211; we had many architectural decisions grounded in very specific context (dependencies, library-specific bugs etc) and it really helped <\/p>\n<p>&#8211; README markdown index in adrs folder<\/p>\n<p>You can use something like these instructions for your coding agent:<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ca9d7fb0-485e-49b4-889a-0b4cda078af2.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>8<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that Prelint checks against ADRs specifically. Most reviewers just look at the diff, not whether it fits the actual architecture.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Kimberly! <\/p>\n<\/p>\n<p>Yes Prelint is quite good at enforcing ADRs (we have some customers that use Prelint as their ground truth, some that use ADRs in their repos and some that have pretty complex MCP tooling around their ADRs). <\/p>\n<\/p>\n<p>We see ourselves more as a &#8220;decision ledger&#8221; than strictly a reviewer. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really interesting approach. How do you handle situations where multiple product specs or architecture decisions conflict with each other? Is there a way for Prelint to detect outdated or contradictory documentation before reviewing a PR? That could be incredibly valuable for larger teams.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Przemek! This is usually how people find us in the first place &#8211; struggling with lots of contradicting docs (we had one case when a client had their contradicting specs written in multiple languages!). <\/p>\n<p>Out of the box, Claude Code is pretty bad at understanding which docs are rotten context and which are still relevant information. We work with it on a couple fronts:<\/p>\n<ul>\n<li>\n<p>We automatically detect and override clean &#8220;supersessions&#8221; &#8211; decisions that have been clearly overridden and just not cleaned up over time &#8211; from docs, meeting notes etc<\/p>\n<\/li>\n<li>\n<p>We provide tools for managing more complex contradictions &#8211; your coding agent or engineer can document a decision using our CLI, and there is a visual interface for finding and managing these for non-technical people.<\/p>\n<\/li>\n<\/ul>\n<p>We see ourselves helping in two ways: if you&#8217;re Prelint-native, you can use the ontology of your business that we generate to feed your AI work (and export it to any format when needed). If you work with your own external decision structure, Prelint helps you clean it up and enforce it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>9<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Few weeks in with Prelint and it&#8217;s been a genuinely good experience. <\/p>\n<p>Best part for me is that it notices when a change goes against what the docs already say, which means you deal with it early instead of in a painful review later. Solid tool. <\/p>\n<p>Nice to finally see you on PH, good luck!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, appreciate the support! Do let us know about the features you&#8217;d like to see going forward, I try to pay very close attention to how people use the tool. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>8<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve watched AI-generated PRs balloon in volume while nobody&#8217;s actually re-reading the original design docs. Tying review criteria back to ADRs feels like the missing piece most teams skip.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Grayson! That&#8217;s if there are any original design docs at all! We have to prepare for a world where there&#8217;s a lot of micro product decisions being made in Claude sessions, in conversations and on Slack. Very very little people sit down now and do a top-down design doc that they ask agents to implement. So we&#8217;re building for a world where we need to catch these decisions where they happen and serve+structure them back. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>QA engineer here, been using Prelint for a while. A lot of our PRs are AI-assisted now code compiles, tests pass, looks right, but whether it still matches what the team actually decided used to land entirely on me.<\/p>\n<\/p>\n<p>Prelint does that pass before I get there. It catches spec drift early, and the notes it leaves on the PR are genuinely useful input for my testing, I go in knowing which areas need attention instead of reading a diff cold.<\/p>\n<\/p>\n<p>Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks for your support Micha\u0142, feel free to reach out whenever there&#8217;s a feature you feel is missing! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Prelint hitting &#8220;product drift&#8221; specifically is such a sharp framing. Most AI code tools obsess over syntax or bugs, but the thing that actually scares me is the AI quietly building something slightly off from what the product was supposed to be<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Yibo! <\/p>\n<p>When I first started writing about product drift in February, I wasn&#8217;t sure if it wasn&#8217;t too niche. At the time we were one of the very few companies that had fleets of headless agents doing engineering. Now it seems to be picking up so maybe we got it right \ud83d\ude05<\/p>\n<\/p>\n<p>The exciting thing is that we built Prelint for ourselves &#8211; we had good technical code review tools but they detected if the code was technically correct, not if it was following our architecture decisions and design patterns. When I launched Prelint originally we were surprised how efficient it was at surfacing these small implicit decisions that coding agents make on your behalf.<\/p>\n<\/p>\n<p>Looking forward to hearing your feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>6<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The decisions I never see in an ADR are the ones that were made to a customer.<\/p>\n<\/p>\n<p>Support creates them constantly. Someone asks when the renewal reminder goes out, support answers before the charge, and that is now a promise a few hundred people are holding you to. It lives in a support thread and nowhere an agent can read.<\/p>\n<\/p>\n<p>A PR that moves that email passes every doc in the repo and still contradicts what those people were told. The expensive kind too, because the customers already know the old answer.<\/p>\n<\/p>\n<p>Does your ingestion pull anything from the support side, or is ground truth engineering artifacts only?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>This is super insightful, thanks Jernej! We&#8217;ve built for it but haven&#8217;t had a client approach it from this angle YET. <\/p>\n<\/p>\n<p>I would reverse the workflow: ideally, the tool support uses like Intercom would use our MCP to understand how the product works, then suggest the right answer to the support team from the get-go. <\/p>\n<\/p>\n<p>BUT I can imagine sometimes the feature is not there yet but the customer support message is a signal &#8211; sort of &#8220;we&#8217;ll do our best to make it happen&#8221;. We don&#8217;t integrate directly with support tools yet (my original thinking was that very rarely support would include any authoritative decisions) but the moment this lands in any tools we integrate with (anything Atlassian, Notion, Linear) we note it as a speculative remark. Something that doesn&#8217;t drive the product but a small signal in case a decision is being made in this area by an agent. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>My team&#8217;s biggest AI-coding headache isn&#8217;t bugs, it&#8217;s silent scope creep, code that works but drifts from what we actually decided months ago. Tools like this feel overdue.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks William! Yes. Also, the problem is often that AIs try to add something that genuinely adds value &#8211; a feature, design pattern but it just gets baked into the code without a human ever knowing about it &#8211; and it creates a spaghetti of the right thing built at the wrong time. <\/p>\n<p>Do try Prelint for your projects and let me know what your team thinks \ud83d\ude42 <\/p>\n<p>DMs always open if you ever need support<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I tried catching this manually with a &#8220;does this match my architecture doc&#8221; checklist in code review. It worked until velocity picked up and reviewers started rubber-stamping. Would love to know how it handles reviewer fatigue over time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Good point Ayesha! I actually feel Claude skills and these kinds of checklists are great for the first 40% part of the process &#8211; fast and cheap, and filters out the first issues. Prelint is great at the latter 60%. <\/p>\n<\/p>\n<p>Internally our team merges on average about 50 pull requests per day &#8211; one of the partners told us that we are one of the fastest teams working with them &#8211; and Prelint is actually one of the tools that make it happen. One of the biggest issues with merging so many PRs in parallel is that you have so many small decisions that can easily overlap and a human or mechanical reviewer won&#8217;t catch them &#8211; this is where Prelint shines. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Technically correct code that builds the wrong product describes AI-assisted development pretty well. &#8220;Code became cheap&#8221; mantra doesn&#8217;t mean we ship better products; it means the bar for what&#8217;s worth building dropped. In practice this results in more of what users never asked for, faster.<\/p>\n<\/p>\n<p>You say &#8220;the agent can self-correct before a human ever looks&#8221; &#8211; what does that look in practice? Is it an automated loop, or does it require human involvement?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Mateusz! <\/p>\n<\/p>\n<p>We started inside pull requests mostly because it&#8217;s the touchpoint that both agents and humans understand out of the box and we think it&#8217;s a unit of change that is about to stay with us but &#8211; in all honesty &#8211; we see our job way beyond that. Prelint is turning into a &#8220;decision ledger&#8221; for companies where your agents still do get feedback on their code changes in pull requests but we now also provide a CLI that your agents can query to explore your company&#8217;s ground truth. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The code reviews are the real bottleneck now, good to see a product that tries to deal with it!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Evgeniy! <\/p>\n<\/p>\n<p>Honestly, I think long term some code reviewers will get brutally commoditized by the frontier models, but we&#8217;re building a decision ledger here.<\/p>\n<\/p>\n<p>I don&#8217;t think programming velocity is the currency any longer &#8211; companies can buy infinite amounts of tokens and I noticed internally, we stopped doing any sprint planning. Code itself is cheap, but what we do instead is &#8211; I block time with my cofounder for taking specific decisions. Once that&#8217;s done, the implementation part is easy. So it&#8217;s the founder&#8217;s decision making capacity that becomes the bottleneck now and you can&#8217;t buy it &#8211; this is what we&#8217;re solving for and optimizing. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve been using Prelint for a few weeks now, and it&#8217;s been a great experience so far. Solid tool, cool to see you finally on PH. Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Daniel, do let us know if there are features you&#8217;d like to see next!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey, I&#8217;ve been using Prelint for the last couple months &#8211; I really like that it reviews the product reasoning behind a PR. And it&#8217;s smart about scaling effort &#8211; most small, low-stakes PRs just get a quick approval, while it goes deep on ones that actually touch permissions or auth, even if the diff is tiny. It can be a bit too nitpicky at times, but that&#8217;s a much better failure mode than rubber-stamping things through.<\/p>\n<\/p>\n<p>Quick question &#8211; do you charge for one-line PRs, or are those free\/exempt from billing?<\/p>\n<\/p>\n<p>Congrats on the launch &#8211; rooting for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks for the question Alex! <\/p>\n<\/p>\n<p>We already do not charge for PRs that contain some non-decision changes (like specific technical files etc) but we&#8217;re actively working on improving it. In general, in a vast majority of cases you wouldn&#8217;t be charged for one-liners. Also example we&#8217;d love not to charge for re-reviews if the changes are very tailored fixes addressing specific issues. For this we&#8217;re introducing more tiered vertical agents compared to the current &#8220;single run&#8221; mechanics. We should have it live in August. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We were using similar thing in my project but built in-house, that&#8217;s actually super valuable<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Yes! I had someone ask why is it not a Claude Code skill last week, and the honest answer is &#8211; it is, for the first 10% of the job it works super well. <\/p>\n<\/p>\n<p>I love that companies now build parts of the tooling in-house, we actually advise some enterprise partners on it too. I think it&#8217;s validation not competition \ud83d\ude0a I cheer for everyone struggling with the same problem and when it escalates we&#8217;re always there to provide a best-in-class solution based on all of our experience. <\/p>\n<\/p>\n<p>Also &#8211; if your company is still looking at these kinds of processes &#8211; feel free to message or DM me, I&#8217;ll happily advise on in-house processes too and share our agentic workflows and if Prelint can be of help at any future time &#8211; even better. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>6<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>AI-generated code will only become more common, so governance tools like Prelint are going to be must-have!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@roopreddy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roopreddy<\/a>&nbsp;I tend to agree!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Prelint is interesting because it seems to be focusing on the product intent. A lot of times AI can take its own direction, catching it soon from drifting by a tool is a great idea indeed!! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ankur_jeswani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankur_jeswani<\/a>&nbsp;there is surprisingly many cases where the direction is even mostly correct but if no one is aware of it it turns into a product disaster!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch guys! What kind of integrations do you guys have?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks Paulina! We add more integrations every week. You can assume we integrate with all major product management tools like the Atlassian suite, Notion, GitHub Issues, Linear as well as meeting recorders like <a href=\"https:\/\/Read.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Read.ai<\/a> etc. We have a lot of expansion work going towards Slack as well (here the biggest problem is noise so we&#8217;re working on eg attaching Slack threads to specific decisions).<\/p>\n<\/p>\n<p>The biggest limitation is that for now we plan to stay GitHub-native for source control until someone gives us a good reason to expand. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! &#8220;Product drift&#8221; is a great name for a problem I didn&#8217;t have a word for. The code compiles, tests pass, and it still quietly isn&#8217;t the thing you asked for. Catching that at lint time is the right layer. Does it work across any codebase, or are you starting with specific languages?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Ben! Prelint works quite well with most modern popular languages, we&#8217;ve seen teams getting great results also with some hardware projects, we also have some happy customers reporting very good results with infrastructure in code.<\/p>\n<\/p>\n<p>I can imagine Fortran would be tricky though<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping this! Product drift is such a sneaky problem, the code works fine but the product quietly became something else. Does Prelint only catch drift in new pull requests, or can it also scan an existing codebase for decisions that already slipped through?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks for the question, Dogan! <\/p>\n<\/p>\n<p>We do scan your existing repo and your agents do see contradictions, collisions and product breadcrumbs through the CLI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;decision ledger, not a code reviewer&#8221; framing is the part I&#8217;d have paid for a year ago.<\/p>\n<\/p>\n<p>One gap I&#8217;d want to understand. Every ingestion source you&#8217;ve described is an artefact of a team \u2014 Slack, meetings, tickets, ADRs. I run a one-person company and I have none of those. Nine months of architectural decisions exist only in AI chat transcripts and in commit messages I wrote to myself. There&#8217;s no PR either; changes go straight to main.<\/p>\n<\/p>\n<p>So: is the CLI a first-class path for the no-PR case, or a fallback for the GitHub flow? And is there any way to seed the ledger from conversation history rather than from repo artefacts? The decisions I most want caught are the ones I made at 11pm in a chat window and had forgotten I&#8217;d made by the following week.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Good questions Rick! I think if you worked with PRs (for granularity and parallelization, deployment reasons) you would find a lot of value from Prelint without the artifacts. My favourite thing when I was a one man show starting the coding on Prelint was being able to get a good grasp on all decisions the agents were making on my behalf in these changes. <\/p>\n<\/p>\n<p>A lot of solo developers are moving to PR-driven workflows also because they have sentry\/infrastructure monitoring agents that get fixes ready when they sleep &#8211; in this case Prelint is excellent because it significantly improves the feedback loop &#8211; you wake up to a better PR. So so far I&#8217;ve been betting on this. <\/p>\n<\/p>\n<p>You can definitely use the CLI as an aid for your agents &#8211; this will help with the context but less with the enforcement. I would be super interested in understanding your workflow and seeing how Prelint fits into the picture. It&#8217;s definitely not our standard use case and maybe this is what makes it so interesting for me. If you would be so kind to drop me a note at wojtek(at)prelint.com I would love to jump on a call early next week to explore. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats Wojtek and team on the launch!<\/p>\n<p>We&#8217;ve had both human and AI PRs pass every check and upon prod review we end up reversing old decisions, excited to try this out.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@guzmanpintos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@guzmanpintos<\/a>&nbsp;Thanks for the support Guzman! I&#8217;ll make sure to make time for an onboarding session with your team soon! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch. The line that got me is &#8220;good code that quietly builds the wrong product&#8221; \u2014 that&#8217;s a failure I didn&#8217;t see coming until it bit us. We build AI products too, and the agent passes every test and still changes a rule nobody agreed on. One question: how does Prelint know what the &#8220;right&#8221; product was meant to be \u2014 only from the ADRs and docs you feed it, or does it also learn from what your team approves over time?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks, Saied! It&#8217;s everything we can get our hands on: Slack threads, PR comments, meeting notes, Claude sessions, you and your agent can also use our CLI to clarify and work the decision records. <\/p>\n<\/p>\n<p>Sometimes it doesn&#8217;t and that&#8217;s the point where it&#8217;s really useful to have Prelint flag it. Most drift happens not in &#8220;big decisions&#8221; that are usually super visible but in micro decisions that nobody notices for 6 weeks &#8211; violating event-driven architecture, very subtly changing permissions or some collateral events or billing rules. <\/p>\n<\/p>\n<p>Right now we have a lot of teams that appreciate Prelint surfacing all the implicit decisions that your coding agents make &#8211; sometimes they are just black and white and our role is saying &#8220;hold on!&#8221; in your name, but other times it&#8217;s the right decision that can still turn disastrous if no one knows it was made.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks awesome!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Aww thank you Louis! Appreciate your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/MMIYN6ZQTIOL72\" class=\"app-title\">SoundGate Guitar<\/a><\/p>\n<div class=\"one-liner\">AI Music Tutor that gives real-time feedback on your playing<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">386<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>SoundGate Guitar \u662f\u4e00\u6b3e\u5229\u7528\u5b9e\u65f6\u97f3\u9891\u68c0\u6d4b\u4e0eAI\u5bf9\u8bdd\u6280\u672f\uff0c\u5728\u5409\u4ed6\u7ec3\u4e60\u573a\u666f\u4e2d\u66ff\u4ee3\u771f\u4eba\u8001\u5e08\uff0c\u89e3\u51b3\u5b66\u4e60\u8005\u201c\u7ec3\u9519\u6ca1\u4eba\u7ea0\u3001\u6709\u95ee\u9898\u6ca1\u4eba\u7b54\u201d\u7684\u6838\u5fc3\u75db\u70b9\u7684AI\u97f3\u4e50\u966a\u7ec3\u5e94\u7528\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/afc2367d-037a-4fbe-939f-f515e92a1dea.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/51448fa9-9962-4da3-820d-372f46ec1f17.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/04e39939-22bb-4059-85b4-62f80cb2e3ba.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/df410eb2-3262-4852-815c-d90998b64e41.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/310b4d87-3bd0-4c4f-903f-d823f4d6cf6b.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=MyEgfj3XNMA\"><source src=\"https:\/\/www.youtube.com\/watch?v=MyEgfj3XNMA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Music<\/span><br \/>\n            <span class=\"tag\">Education<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5409\u4ed6\u966a\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u97f3\u9ad8\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u548c\u5f26\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u6307\u677f\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">AI\u97f3\u4e50\u5bfc\u5e08<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u6027\u5316\u7ec3\u4e60\u8ba1\u5212<\/span><br \/>\n            <span class=\"tag\">\u96f6\u5ef6\u8fdf\u97f3\u9891\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u7ec3\u7434\u7ea0\u9519<\/span><br \/>\n            <span class=\"tag\">\u5409\u4ed6\u6559\u5b66\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u5b66\u4e60\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u5b9e\u65f6\u53cd\u9988\u4e0e\u96f6\u5ef6\u8fdf\u68c0\u6d4b\uff0c\u8ba4\u4e3a\u89e3\u51b3\u4e86\u4f20\u7edf\u5e94\u7528\u201c\u4e8b\u540e\u6253\u5206\u201d\u7684\u75db\u70b9\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\u662f\u5426\u652f\u6301\u591a\u97f3\u590d\u6d4b\u3001\u6280\u6cd5\u68c0\u6d4b\uff08\u63a8\u5f26\u3001\u6ed1\u97f3\u7b49\uff09\u3001\u8fdb\u5ea6\u8ffd\u8e2a\u8bb0\u5f55\uff0c\u4ee5\u53ca\u672a\u6765\u662f\u5426\u652f\u6301\u8d1d\u65af\u3001\u5c24\u514b\u91cc\u91cc\u7b49\u5176\u4ed6\u4e50\u5668\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                SoundGate Guitar\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u627e\u51c6\u4e86\u201cAI\u97f3\u4e50\u6559\u80b2\u201d\u7684\u4f2a\u7e41\u8363\u76f2\u533a\u2014\u2014\u5e02\u573a\u4e0a\u4e0d\u7f3a\u5f55\u64ad\u8bfe\u548c\u5361\u62c9OK\u5f0f\u6253\u5206\u5668\uff0c\u7f3a\u7684\u662f\u4e00\u4e2a\u80fd\u771f\u6b63\u201c\u542c\u201d\u61c2\u4f60\u5e76\u5373\u65f6\u7ea0\u9519\u7684\u8001\u5e08\u3002\u5176\u96f6\u5ef6\u8fdf\u7684\u6307\u677f\u6620\u5c04\u548c\u5185\u7f6eAI\u95ee\u7b54\u673a\u5236\uff0c\u5207\u4e2d\u4e86\u81ea\u5b66\u5409\u4ed6\u6700\u5927\u7684\u4e24\u7ea7\u75db\u70b9\uff1a\u64cd\u4f5c\u4e0a\u7684\u76f2\u76ee\u611f\uff08\u4e0d\u77e5\u5f39\u5bf9\u9519\uff09\u548c\u8ba4\u77e5\u4e0a\u7684\u65e0\u52a9\u611f\uff08\u4e0d\u77e5\u4e3a\u4ec0\u4e48\u9519\u53ca\u5982\u4f55\u6539\uff09\u3002\u4ece\u6280\u672f\u4e0a\u770b\uff0c\u4f4e\u9891\u5ef6\u65f6\u7684\u97f3\u9891\u7279\u5f81\u63d0\u53d6\u662f\u6838\u5fc3\u58c1\u5792\uff0c\u800c\u5c06\u8fd9\u4e2a\u80fd\u529b\u4e0e\u5bf9\u8bdd\u5f0fAI\u7ed3\u5408\uff0c\u5b8c\u6210\u4e86\u4ece\u201c\u5de5\u5177\u201d\u5230\u201c\u8001\u5e08\u201d\u7684\u8dc3\u8fc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9510\u8bc4\u5fc5\u987b\u6307\u51fa\uff1a\u5176\u201c100%\u514d\u8d39\u201d\u5728\u5f53\u524d\u8d44\u672c\u903b\u8f91\u4e0b\u66f4\u50cf\u4e00\u4e2a\u83b7\u5ba2\u627f\u8bfa\u4e0e\u65e9\u671f\u9a8c\u8bc1\u7b56\u7565\uff0c\u82e5\u65e0\u6cd5\u5feb\u901f\u5f62\u6210\u8ba2\u9605\u6216\u589e\u503c\u6536\u5165\uff08\u5982\u591a\u4e50\u5668\u652f\u6301\u3001\u9ad8\u7ea7\u6280\u6cd5\u6a21\u578b\uff09\uff0c\u540e\u7eed\u7814\u53d1\u5c06\u96be\u4ee5\u4e3a\u7ee7\u3002\u76ee\u524d\u8bc4\u8bba\u533a\u5bf9\u63a8\u5f26\u3001\u6ed1\u97f3\u3001\u5236\u97f3\u7b49\u6f14\u594f\u6280\u6cd5\u7684\u7f3a\u5931\u53cd\u5e94\u76f4\u63a5\u2014\u2014\u8fd9\u8bf4\u660e\u5f15\u64ce\u5f53\u524d\u4ecd\u504f\u5411\u201c\u97f3\u9ad8\u5bf9\u6bd4\u201d\u800c\u975e\u201c\u6f14\u594f\u8d28\u611f\u5206\u6790\u201d\uff0c\u540e\u8005\u624d\u662f\u786c\u6838\u7528\u6237\u7559\u5b58\u7684\u5173\u952e\u3002\u6b64\u5916\uff0c\u4f5c\u4e3aAI\u6559\u5e08\uff0c\u5176\u201c\u4e2a\u6027\u5316\u201d\u6df1\u5ea6\u4ecd\u5b58\u7591\uff1a\u771f\u6b63\u7684\u597d\u8001\u5e08\u4f1a\u6309\u5b66\u751f\u7684\u624b\u6307\u6761\u4ef6\u3001\u542c\u89c9\u4e60\u60ef\u8c03\u6574\u8def\u5f84\uff0c\u800c\u975e\u4ec5\u6839\u636e\u5bf9\u9519\u6570\u636e\u751f\u6210\u56fa\u5b9a\u4f5c\u4e1a\u3002SoundGate\u82e5\u505c\u7559\u5728\u201c\u7cbe\u51c6\u7684\u8282\u62cd\u5668+\u8bb0\u5206\u677f\u201d\u5c42\u9762\uff0c\u5219\u7ec8\u7a76\u53ea\u662f\u6bd4YouTube\u4e92\u52a8\u6027\u597d\u4e00\u70b9\u7684\u6e38\u620f\u673a\uff1b\u552f\u6709\u6301\u7eed\u653b\u514b\u6f14\u594f\u8868\u73b0\u529b\u5efa\u6a21\uff0c\u624d\u80fd\u79f0\u5f97\u4e0a\u201c\u97f3\u4e50\u6559\u5e08\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">SoundGate Guitar<\/span>\n                <\/div>\n<div class=\"comment-content\">SoundGate Guitar is an AI practice companion that actually listens to you play. Get instant visual feedback on an interactive fretboard with zero-lag note detection. The built-in AI tutor analyzes your playing to provide personalized feedback, custom practice routines, and answers to any guitar question.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>We&#8217;re the team behind SoundGate Guitar &#8211; a practice companion that actually hears you play and responds in real time.<\/p>\n<p>Most guitar apps follow the same formula: watch a video, try to play along, get a pass\/fail score. That&#8217;s not how you learn guitar. You learn by playing, making mistakes, and getting feedback in the moment &#8211; the way a real teacher would.<\/p>\n<p>So we built SoundGate to be that practice companion:<\/p>\n<p><strong>It hears every note.<\/strong> Play any note or chord and the interactive fretboard lights up instantly &#8211; real-time detection, not a 2-second delay. You can actually see what you&#8217;re playing as you play it.<\/p>\n<p><strong>Interactive fretboard, tabs, scales, exercises<\/strong> &#8211; all interactive. It&#8217;s not just detection. There&#8217;s a full exercise library with scoring based on your actual playing. Chords, strumming, fingerpicking, scales &#8211; from beginner to advanced.<\/p>\n<p><strong>Ask it anything<\/strong>. Stuck on a barre chord? Wondering what scale works over a progression? The built-in AI coach gives you specific, personalized answers &#8211; not generic YouTube links.<\/p>\n<p><strong>Real native app<\/strong>. SwiftUI on iPhone, iPad, and Mac. Plug in a USB audio interface on your Mac and it just works. No Electron, no web views.<\/p>\n<p><strong>It&#8217;s 100% free<\/strong>. Not freemium-free. Actually free. Every feature unlocked. We&#8217;re in early access &#8211; we want feedback from real guitarists, not credit card numbers.<\/p>\n<p>Whether you picked up a guitar yesterday or you&#8217;ve been playing for 20 years, we built this for you.<\/p>\n<p>Would love to hear what you think &#8211; drop any questions below! \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>27<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a>&nbsp;Love the concept! \ud83d\udd25Are you planning to expand SoundGate to support other instruments in the future?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a>&nbsp;Congrats on the launch! \ud83c\udfb8<\/p>\n<p>I met the founders myself at a tech event, so I know how much effort and passion they\u2019ve put into this product.<\/p>\n<p>I also tested the app myself, and as someone with a musical background, I can definitely say it\u2019s worth giving it a try!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a>&nbsp;Really like that SoundGate Guitar listens to your playing in real time instead of just providing static lessons. The instant visual feedback, AI-powered coaching, and personalized practice routines make it a great tool for improving technique and building confidence. Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Music might be the most beautiful language we have&#8230;<\/p>\n<p>Time to switch from code to strings for a while \ud83c\udfb8!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Love that! Time to give those typing fingers a different kind of workout. Thanks for being such an awesome partner for this launch <a href=\"https:\/\/www.producthunt.com\/@zaczuo\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>5<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks for hunting us, Zac! As SoundGate\u2019s CTO, I spend a lot of time teaching code to listen to strings. Maybe it\u2019s time I played them too \ud83c\udfb8 Really appreciate your support <a href=\"https:\/\/www.producthunt.com\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>5<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats \ud83d\udc4f <a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a> on taking this live&#8230; solving real-time audio detection without delay is no small feat, Rooting for you guys today, exactly the motivation I needed to dust off my guitar this weekend.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thank you <a href=\"https:\/\/www.producthunt.com\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;! \ud83c\udfb8 It was no small feat, but we are so proud of how the real-time detection turned out. So glad to hear we could provide that weekend motivation &#8211; enjoy playing and let us know what you think!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! \ud83d\udc4f Just dropping by to say hi as a fellow guitarist.<\/p>\n<\/p>\n<p>I\u2019ve tried a few similar products before (e.g. Yousician), so I\u2019m curious what makes SoundGate stand out in such a competitive space.<\/p>\n<\/p>\n<p>In particular, is your differentiation around areas like:<\/p>\n<ul>\n<li>\n<p>Polyphonic (multiple-note) detection?<\/p>\n<\/li>\n<li>\n<p>Expression\/technique detection (e.g. bends, vibrato, slides, palm muting)?<\/p>\n<\/li>\n<\/ul>\n<p>Those have always seemed like some of the hardest technical challenges for AI guitar coaches, so I\u2019d love to hear what you\u2019ve improved.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shuaibird\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shuaibird<\/a>&nbsp;hey! Great to connect with a fellow guitarist here. \ud83d\udc4b You nailed the exact hard problems! While we are incredibly proud of our zero-lag polyphonic detection (strum a chord and the fretboard lights up instantly without delay), one of our biggest differentiator from gamified apps is actually our built-in AI Tutor. Instead of just playing along to a scrolling highway and getting a score, SoundGate acts like a real teacher. You can actually converse with the AI coach, ask why a chord transition sounds muddy, and get personalized routines. As for expression detection (bends, slides, etc.), we are actively working on perfecting those models next! \ud83c\udfb8&#8221;<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shuaibird\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shuaibird<\/a>&nbsp;Great question! Some of the advanced techniques and musical analysis you mentioned are still on our roadmap, so the app may feel a bit limited in those areas today. We\u2019re shipping updates frequently, and our goal is to gradually integrate all major guitar techniques into the learning experience. Thanks for the thoughtful question! \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Find it pretty useful. At some point in my life, I wanna learn to play any instrument. And if AI can teach me, this could be my option to try it. Do you also have any background in the music industry that you decided to create this?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;thanks so much! It&#8217;s never too late to start, and we&#8217;d love to help you when you&#8217;re ready. To answer your question, yes I&#8217;ve actually been playing guitar since childhood and most of our team are guitar players as well. Because we play, we knew exactly what was missing from other apps, that real-time feedback you only get from a real teacher. Let us know when you decide to pick up your first guitar! \ud83c\udfb8&#8221;<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does the app support 4-string bass or ukulele, or is the engine currently tuned strictly for 6-string guitar? Congrats on the launch.. after seeking a product like SoundGate for a long time that&#8217;s truly based on music, this is really great <a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a> \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;thank you so much, Priya! Currently, we&#8217;re all-in on the 6-string guitar to make sure the real-time engine is absolutely perfect. Once we nail that bass and uke are next in line! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aren_barseghyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aren_barseghyan<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;Thanks so much, Priya! We built the foundation with expansion in mind, and feedback like yours helps us prioritize what comes next. Which would you want us to support first: bass or ukulele? \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on the launch! this looks like the perfect excuse for me to finally start learning guitar \ud83d\ude42<\/p>\n<p>are you planning to add support for more musical instruments?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sipan_babertsyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sipan_babertsyan<\/a>&nbsp;no more excuses :))<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sipan_babertsyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sipan_babertsyan<\/a>&nbsp;no more excuses, Sipan! \ud83d\ude09 We&#8217;d be honored to be your first guitar teacher. Grab a guitar and let&#8217;s go!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sipan_babertsyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sipan_babertsyan<\/a>&nbsp;Definitely! We have experience across many instruments and are exploring where to go next. Most likely, it\u2019ll be an instrument that pairs well with guitar so people can jam together. \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!! The fact that it hears you play and responds in realtime is the cherry on top, I love how it recognises the note\/chord you&#8217;ve just played and instantly shows on screen. I see it can also be your &#8216;step-by-step- companion, are we talking beginner beginner? Let&#8217;s say I don&#8217;t know how to play guitar whatsoever &#8211; can I start today?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lorbes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lorbes<\/a>&nbsp;Thank you, Jonathan! \ud83d\ude4c 100% yes &#8211; you can start from absolute zero today. Our exercise library ranges from &#8216;never held a guitar&#8217; all the way to advanced. The best part for beginners is that if you ever get confused, you can just ask the built-in AI tutor to explain it to you, just like a real teacher sitting next to you. Let us know how your first session goes! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lorbes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lorbes<\/a>&nbsp;Our learning path is evolving to adapt even better to every skill level with each update. \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! You can tell a lot of thought went into making the experience approachable. It feels like the kind of product that could get more people to actually enjoy the learning process instead of giving up after a week.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ohharsen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ohharsen<\/a>&nbsp;thanks! \ud83d\ude4c Defeating that 1-week curse was exactly what we set out to do. Learning guitar should be fun, not frustrating! \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Real-time feedback is the part that hooks me here. Most guitar apps just grade you after the fact, so catching a bum note the instant I play it feels way more like an actual teacher sitting next to me.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@yibo_wang3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yibo_wang3<\/a>&nbsp;spot on. We were so tired of getting to the end of a practice session only to get a generic pass\/fail score after the fact. Learning actually happens by making mistakes and getting feedback right in that exact moment, just like a real teacher would give you. Enjoy having your new AI guitar teacher right there with you on the fretboard! \ud83c\udfb8&#8221;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>how cool! I remember how expensive music lessons were, so it&#8217;s special to make that accessible for any audience<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@constanza_hasselmann\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@constanza_hasselmann<\/a>&nbsp;\u057fhank you! Learning an instrument shouldn&#8217;t be a luxury, and we&#8217;re so thrilled to help make it accessible to everyone<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Real-time feedback is the one part of learning guitar you can&#8217;t get without a teacher in the room. Everything else is already on YouTube. Curious whether it&#8217;s catching timing and cleanliness or mostly pitch, since that distinction is basically the whole product.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lucasjpols\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucasjpols<\/a>&nbsp;YouTube is a fantastic library, but a terrible mirror. The engine doesn&#8217;t just check pitch &#8211; it actively analyzes your timing and the cleanliness of your playing (like catching muted strings or fret buzz) in real-time. We wanted it to feel like a real teacher actually listening to how you play, not just what you play. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The real-time fretboard feedback is the part I would actually use &#8211; finally something that listens instead of making me watch a video and guess if I am doing it right. The thing I would want to know before making it a daily habit: does it save any record of what I have practiced or how I have improved over time, or is each session fresh? Knowing I can look back at what I was struggling with two weeks ago would make the practice habit much easier to stick to.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;that guessing game with videos is exactly why we built the real-time fretboard. And you are going to love this: not only does the AI remember your entire session history, but we actually have beautiful charts showing your progress over time! You can visually look back, see exactly what you were struggling with two weeks ago, and watch those metrics improve.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the zero lag note detection feels genuinely useful, especially when working through scales. the AI tutor suggestions were surprisingly specific to what i was messing up.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@stephanie_alice\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@stephanie_alice<\/a>&nbsp;This is exactly what we hoped to hear, Stephanie! Practicing scales without instant feedback can be so frustrating. We specifically trained the AI to look at the exact nuances of what you are playing so it can give you that hyper-specific advice, rather than just a generic try again So glad it&#8217;s helping you dial in those scales \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Oh this would have been so useful for me when I was younger! A question though, do you plan to expand to other instruments like the piano in the future?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thediffidentgarlicbread\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thediffidentgarlicbread<\/a>&nbsp;thanks so much Divya! We feel the exact same way &#8211; we built this to be the tool we wish we had when we were kids first learning to play! We are completely focused on perfecting the guitar experience right now but expanding to piano is absolutely on our long-term roadmap. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats Aren and Vahe! I work at an AI learning company, so the part I care about is the tutor, not the note detection. Real teachers are valuable because they remember you: last week\u2019s sloppy chord changes shape this week\u2019s lesson. Does the AI tutor carry memory across sessions, tracking my recurring weaknesses and adapting my routines over time, or does each practice session start fresh? Persistent progress tracking is what separates a tutor from a very good tuner, and if you\u2019ve built it, that\u2019s the headline for me.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ridhwikvinod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ridhwikvinod<\/a>&nbsp;Hi Ridhwik! Persistent progress tracking was a non-negotiable for us. The AI remembers your past sessions and tracks your weaknesses over time so you never start fresh. It uses all that history to shape your lessons, exactly like a real teacher tracking your growth! <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations with the launch. Do you plan to add more instruments or you wanna go niche?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tigran_chakhalyan1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tigran_chakhalyan1<\/a>&nbsp;thanks so much, Tigran! Right now, we are laser-focused on the guitar niche to make sure our real-time engine and AI tutor are absolutely flawless. But the long-term vision is definitely to expand the band and add more instruments down the road<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Real-time note and chord detection could make practice much more useful than getting a score afterward. How well does it handle background noise or playing through an amp?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;our engine is pretty robust at isolating guitar frequencies through your device&#8217;s mic, even when playing through an amp! But if you want the absolute perfect noise-free experience, you can actually plug your electric guitar or amp directly into your Mac using a USB audio interface. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Im thinking about buying a guitar after this app. lol hope i can learn it fast because i don;t have time to go to the music classes <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kartikmalik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kartikmalik<\/a>&nbsp;haha, do it! \ud83c\udfb8 That is exactly why we built SoundGate. Skipping the commute to music classes and learning on your own schedule is the way to go. Your AI teacher is ready whenever you are! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>after this, I&#8217;m getting my first guitar.<\/p>\n<\/p>\n<p>congrats on the launch &lt;3<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aadilghani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aadilghani<\/a>&nbsp;once you get your guitar, share your first song with SoundGate community later))<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aadilghani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aadilghani<\/a>&nbsp;go get that guitar and let the shredding begin! Don&#8217;t hesitate to ask the AI coach for help setting it up on day one. \ud83d\ude80&#8221;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>SoundGate looks like a game-changer for guitar practice. Real-time feedback, personalized exercises, and an AI tutor in one platform make learning feel much more focused and motivating. <\/p>\n<\/p>\n<p>Excited for the journey ahead and to see how the product continues to evolve! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@armi_mi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@armi_mi<\/a>&nbsp;Thanks so much, Armi! We are ready to rock and roll! \ud83c\udfb8 Keeping players in the zone so they can shred faster is the ultimate goal. So glad to have you with us on this journey!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This really looks great and is a way for anyone to really go in and start getting a guide to learn to play a guitar. The AI feedback is cool and can help with where a user is doing well or not and overall, how they can improve. I just wish that it could be on Android. Can&#8217;t leave the Android ppl out now, LOL. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@neogio_bit\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@neogio_bit<\/a>&nbsp;Thank you, Giovanni! That is exactly what we want SoundGate to do: give every learner clear feedback and help them improve with each practice session. We hear you about Android and hope to bring SoundGate to more players in the future.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As generative AI becomes capable of creating music, do you see it replacing musicians, or can tools like SoundGate help more people become musicians?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jonatan_saban1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jonatan_saban1<\/a>&nbsp;We see AI helping more people become musicians, not replacing them. Music is about human expression, and AI can make learning more accessible by giving people the guidance and feedback they need to develop their own skills and sound.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the use case i&#8217;d actually want is playing along with a real song, not just isolated exercises. if a backing track or the original recording is playing through my speakers at the same time as my guitar, does the detection still isolate my playing cleanly, or does it need near silence in the room to work? that&#8217;s the difference between a practice tool and something i&#8217;d actually use to learn songs i care about.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;We are not building around what simply feels like a good learning experience. We study the most effective learning methods and turn them into a practice experience that works.<\/p>\n<p>The foundation is simple: produce a clean tone, play slowly, and build accuracy from the beginning. Repeating mistakes only makes those mistakes harder to unlearn.<\/p>\n<p>Playing popular songs adds excitement to the journey, and we will introduce that very soon. For now, we recommend staying consistent with your daily practice. We want to make that practice motivating, so when you are ready, you can pick up your favorite songs quickly and play them with confidence.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi, on the initial start page it asks what type of guitar you play. I have an electric and acoustic but i was only able to select one option. A multi option for some of us who play multiple instruments might be good. Great work so far.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kenshipley\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kenshipley<\/a>&nbsp;Thanks, Ken, you have great point! For now, that question is only used for analytics and doesn\u2019t affect the experience. Later, we plan to use it to personalize lessons and styles for each player. Multi-select definitely makes sense, and we\u2019ll add it to our roadmap! \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the look of this! Learning scales from static fretboard diagrams has always been the part I struggle with. Having something interactive or that actually lights up as you play sounds like it would make it click so much faster. Excited to give this a go.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@afb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@afb<\/a>&nbsp;Thanks, Archie! That\u2019s exactly the problem we wanted to solve &#8211; turning static diagrams into something visual, interactive, and connected to your playing. Excited for you to try it! \ud83c\udfb8<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Sounds interesting. Are you planning to launch a uke tutor as well?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sarthak_shrivastava2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sarthak_shrivastava2<\/a>&nbsp;Thank you! We are focused on making the guitar experience great first, but a ukulele tutor is definitely something we would love to explore.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love this idea! I&#8217;ve wanted to learn guitar for years but never knew where to start. Does the AI create a personalized learning path for complete beginners?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dhatri_rai1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhatri_rai1<\/a>&nbsp;YES! The AI builds a completely personalized learning path from day one. It starts with the absolute basics and adapts to your pace as you go, so you never feel lost or overwhelmed. It&#8217;s time to finally pick up that guitar!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/N632XKIQZO65KB\" class=\"app-title\">Denovo<\/a><\/p>\n<div class=\"one-liner\">Turn your vibe-coded app into paying customers<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">296<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Denovo\u662f\u4e00\u4e2a\u4ece\u521b\u610f\u9a8c\u8bc1\u3001\u54c1\u724c\u5efa\u7ad9\u5230\u652f\u4ed8\u5bf9\u63a5\uff08Stripe\uff09\u3001\u81ea\u52a8\u8425\u9500\uff08\u90ae\u4ef6+Meta\u5e7f\u544a\uff09\u53ca\u8425\u6536\u5206\u6790\u7684\u4e00\u7ad9\u5f0f\u5e73\u53f0\uff0c\u4e13\u4e3a\u201c\u6572\u5b8c\u4ee3\u7801\u5374\u4e0d\u77e5\u9053\u600e\u4e48\u8d5a\u94b1\u201d\u7684\u72ec\u7acb\u5f00\u53d1\u8005\u670d\u52a1\uff0c\u89e3\u51b3\u4ece\u4ea7\u54c1\u5230\u4ed8\u8d39\u5ba2\u6237\u4e4b\u95f4\u7684\u201c\u5e02\u573a\u63a8\u5e7f\u6b7b\u4ea1\u9e3f\u6c9f\u201d\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8ac74405-ce8f-4b0b-b9cf-f386c2526be9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4645f2e8-a225-4657-b039-5b6882dc9a82.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2cbaf59a-f294-43c7-8900-e97b744c74d3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d215286c-8329-4c7a-8274-8bbeee45da81.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b710ea23-5a44-4099-ac2f-8fd1c828659c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/73bbea68-a9f4-4030-af67-b970ab1919ec.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4bcc90c8-2b14-43db-99fe-0c069c86ecf1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e718e754-e919-4175-b6ef-182d4b2d0334.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/317a29cb-8809-4362-8bc0-db710a073d78.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/279b4eb3-ea37-4aa3-88ac-5de16fe7f956.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/daa9860a-5ef5-410a-b89a-e558c1deca6d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/18088b1b-d704-479a-adac-e74c4d529b45.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/36383d04-f50f-48bb-baa4-9c2bd6bccbaa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9de03763-0872-4a81-b1e8-bf400a90958c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/ad0e13c6-a755-4a4c-911d-bc329923d9ff.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/j71YUSEjg3g\"><source src=\"https:\/\/youtu.be\/j71YUSEjg3g\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Sales<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Software Engineering<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u4e00\u952e\u53d8\u73b0<\/span><br \/>\n            <span class=\"tag\">Stripe\u652f\u4ed8<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u51b7\u542f\u52a8<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1\u8005<\/span><br \/>\n            <span class=\"tag\">SaaS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Meta\u5e7f\u544a<\/span><br \/>\n            <span class=\"tag\">\u5e02\u573a\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">Growth\u5f15\u64ce<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u505a\u51fa\u6765\u5bb9\u6613\uff0c\u5356\u51fa\u53bb\u96be\u201d\u7684\u75db\u70b9\uff0c\u4f46\u8d28\u7591\u7cfb\u7edf\u662f\u5426\u771f\u7684\u80fd\u505a\u51fa\u6df1\u5ea6\u51b3\u7b56\uff08\u5982\u201c\u7ea2\u7eff\u706f\u9a8c\u8bc1\u201d\u7684\u5177\u4f53\u4f9d\u636e\uff09\uff1b\u5173\u5fc3\u51b7\u90ae\u4ef6\u9001\u8fbe\u7387\uff08\u6bcf\u65e530\u5c01\u9650\u5236\uff09\u3001B2B\u9002\u7528\u6027\u3001\u662f\u5426\u652f\u6301\u6309\u6a21\u5757\u5355\u72ec\u4f7f\u7528\uff1b\u6709\u7528\u6237\u5efa\u8bae\u589e\u52a0LinkedIn\u5916\u8054\u3001SaaS\u76ee\u5f55\u63d0\u4ea4\u7b49\u529f\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Denovo\u7cbe\u51c6\u547d\u4e2d\u4e86\u201cAI\u751f\u6210\u4ee3\u7801\u201d\u6cdb\u6ee5\u540e\u6700\u5927\u7684\u771f\u7a7a\u5730\u5e26\u2014\u2014\u5206\u53d1\u4e0e\u53d8\u73b0\u3002\u521b\u59cb\u4ebaSaverio\u5f88\u8bda\u5b9e\uff0c\u524d\u4e24\u6b21\u521b\u4e1a\u6b7b\u5728\u201cGo-to-Market\u201d\uff0c\u8fd9\u6070\u6070\u662f\u6280\u672f\u51fa\u8eab\u521b\u59cb\u4eba\u7684\u96c6\u4f53\u76f2\u533a\u3002\u4ea7\u54c1\u903b\u8f91\u8bd5\u56fe\u505a\u4e00\u4e2a\u201c\u5168\u6808\u589e\u957f\u673a\u5668\u201d\uff1a\u4ece\u60f3\u6cd5\u9a8c\u8bc1\u3001\u54c1\u724c\u3001\u5efa\u7ad9\u3001\u652f\u4ed8\u3001\u5230\u51b7\u90ae\u4ef6\u548c\u5e7f\u544a\u6295\u653e\uff0c\u518d\u5230\u8425\u6536\u6c47\u62a5\uff0c\u51e0\u4e4e\u8986\u76d6\u4e86\u4ece0\u52301\u7684\u6240\u6709\u5546\u4e1a\u52a8\u4f5c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u4e5f\u5728\u4e8e\u201c\u5168\u6808\u201d\u3002\u4e00\u4e2a\u5e74\u85aa25\u7f8e\u5143\uff08\u6309\u4ea7\u54c1\u5b9a\u4ef7\u4f30\u7b97\uff09\u7684AI\u4ee3\u7406\uff0c\u5982\u4f55\u771f\u6b63\u505a\u51fa\u6709\u6df1\u5ea6\u7684\u7ade\u4e89\u5206\u6790\u548c\u8d22\u52a1\u9884\u6d4b\uff1f\u201c\u7ea2\u7eff\u706f\u201d\u9a8c\u8bc1\u5982\u679c\u53ea\u9760\u516c\u5f00\u6570\u636e\u548c\u6a21\u677f\u5316\u6253\u5206\uff0c\u53ef\u80fd\u53ea\u4f1a\u7ed9\u51fa\u8fc7\u4e8e\u6cdb\u5316\u7684\u5efa\u8bae\uff0c\u65e0\u6cd5\u66ff\u4ee3\u771f\u5b9e\u8bbf\u8c08\u6216\u884c\u4e1a\u6d1e\u5bdf\u3002\u540c\u6837\uff0c30\u5c01\/\u5929\u7684\u90ae\u4ef6\u9650\u5236\u3001\u81ea\u52a8\u5e7f\u544a\u6295\u653e\u7684\u9884\u7b97\u63a7\u5236\u4e0e\u5408\u89c4\u98ce\u9669\uff0c\u90fd\u662f\u5b9e\u64cd\u4e2d\u6781\u6613\u7ffb\u8f66\u7684\u5730\u96f7\u3002\u4ea7\u54c1\u4f3c\u4e4e\u628a\u201c\u81ea\u52a8\u5316\u201d\u548c\u201c\u667a\u80fd\u5316\u201d\u6df7\u4e3a\u4e00\u8c08\u4e86\u2014\u2014\u524d\u8005\u662f\u8282\u7701\u65f6\u95f4\uff0c\u540e\u8005\u624d\u662f\u521b\u9020\u4ef7\u503c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u4eae\u773c\u7684\u8bbe\u8ba1\u662f\u201cStripe from day one\u201d\u3002\u8fd9\u51fb\u4e2d\u4e86\u201c\u5bb3\u6015\u6536\u94b1\u201d\u7684\u5fc3\u7406\uff0c\u628a\u5546\u4e1a\u5316\u4ece\u540e\u7f6e\u53d8\u6210\u4e86\u524d\u7f6e\u3002\u4f46\u771f\u6b63\u7684\u58c1\u5792\u4e0d\u5728\u529f\u80fd\u5806\u53e0\uff0c\u800c\u5728\u4e8e\u6570\u636e\u98de\u8f6e\uff1a\u5f53\u5e73\u53f0\u79ef\u7d2f\u8db3\u591f\u591a\u7684\u201c\u6210\u529f\u4e0e\u5931\u8d25\u6848\u4f8b\u201d\uff0c\u5176\u9a8c\u8bc1\u51c6\u786e\u6027\u548c\u8425\u9500\u6548\u679c\u624d\u80fd\u6307\u6570\u7ea7\u63d0\u5347\u3002\u5426\u5219\uff0cDenovo\u5f88\u5bb9\u6613\u505a\u6210\u4e00\u4e2a\u201c\u529f\u80fd\u5f88\u591a\u4f46\u6bcf\u4e2a\u6df1\u5ea6\u90fd\u4e0d\u591f\u201d\u7684\u5de5\u5177\u5408\u96c6\uff0c\u6ca6\u4e3a\u53c8\u4e00\u4e2aVibe Coding\u65f6\u4ee3\u7684\u5b89\u6170\u5242\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u5fe0\u544a\uff1a\u521b\u59cb\u4eba\u65e2\u7136\u6709ML\u80cc\u666f\uff0c\u5e94\u8be5\u628a\u5927\u90e8\u5206\u7b97\u529b\u653e\u5728\u201c\u54ea\u4e2a\u70b9\u5b50\u8be5\u653e\u5f03\u201d\u548c\u201c\u54ea\u5c01\u90ae\u4ef6\u6700\u4f18\u201d\u8fd9\u4e24\u4e2a\u6838\u5fc3\u51b3\u7b56\u4e0a\uff0c\u800c\u4e0d\u662f\u8d2a\u5fc3\u5730\u505a\u4e00\u4e2a\u65e0\u6240\u4e0d\u80fd\u7684\u81ea\u52a8\u5316\u5de5\u4ef6\u3002\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u6df1\u5ea6\u51b3\u5b9a\u751f\u6b7b\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Denovo<\/span>\n                <\/div>\n<div class=\"comment-content\">You vibe-coded your app. Now what? \ud83e\udd14 AI makes building easy, but getting customers is the hard part. Denovo takes you straight from idea to revenue. \ud83d\udcb8 Get a ready-to-convert website with Stripe pre-wired, plus an automated growth engine sending emails to 100M leads and setting up your Meta ads campaigns. \ud83d\ude80 Just ask &#8220;how&#8217;s business?&#8221; for your revenue and next steps. 15,000+ businesses built here. Yours is one line away.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>Saverio here, founder of Denovo.<\/p>\n<\/p>\n<p>I spent <strong>five years at Meta building ML models,<\/strong> and I&#8217;ve been doing <strong>gen AI research since 2018<\/strong>. I served <strong>four years as the AI advisor to the Italian Prime Minister&#8217;s Office<\/strong>.<\/p>\n<\/p>\n<p>I&#8217;m the <strong>only employee at Denovo<\/strong> \u2014 I built the entire product from scratch, solo.<\/p>\n<\/p>\n<p>Here&#8217;s the part that actually matters: <strong>my previous startups all failed because of go-to-market.<\/strong> Not the tech \u2014 I could always build. Finding customers is what killed them. Every time. \ud83d\udc80<\/p>\n<\/p>\n<p>AI made building easy. Getting paid is still brutally hard. You vibe-coded your app&#8230; now what? \ud83e\udd37<\/p>\n<\/p>\n<p>Denovo is me solving my own failure mode, for everyone else \u2014 the whole distance between an idea and a paying customer:<\/p>\n<\/p>\n<p>\u2705 <strong>Feedback first<\/strong> \u2014 before anything gets built, Denovo pressure-tests your idea (market, competition, pricing) and gives a clear green\/yellow\/red verdict. Some ideas deserve a &#8220;no&#8221; before you spend a cent.<\/p>\n<\/p>\n<p>\ud83c\udfa8 <strong>Your brand, then your website<\/strong> \u2014 built for you, on-brand, no page builder. Want changes? Just chat.<\/p>\n<\/p>\n<p>\ud83d\udcb3 <strong>Stripe from day one<\/strong> \u2014 the moment you pick your domain, payments are wired in automatically with Stripe Connect. Revenue isn&#8217;t an afterthought. It&#8217;s the point.<\/p>\n<\/p>\n<p>\ud83c\udfaf <strong>Customers, found for you<\/strong> \u2014 Meta ads set up automatically, plus outreach matched to your ideal customer profile from a database of 100M verified leads. You wake up to work you didn&#8217;t do.<\/p>\n<\/p>\n<p>\ud83c\udfa7 <strong>Then you just ask<\/strong> \u2014 &#8220;How&#8217;s business?&#8221; Denovo tells you what it shipped, where revenue stands, and what&#8217;s next. <\/p>\n<\/p>\n<p>15,000+ businesses have been built here \u2014 real domains, real Stripe accounts, real customers. \ud83d\ude80<\/p>\n<\/p>\n<p><strong>For the PH community: 20% off yearly plans (including Build and Launch) with code PRODUCTHUNT20<\/strong> \ud83c\udf81<\/p>\n<\/p>\n<p>What will you be building on Denovo?<\/p>\n<\/p>\n<p>I&#8217;ll be here all day \u2014 ask me anything, including the hard questions. \ud83d\ude4c<\/p>\n<\/p>\n<p>\u2014 Saverio<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch Saverio. The honest bit about previous startups failing on go-to-market makes this more interesting than the usual \u201cbuild anything with AI\u201d pitch. Denovo is taking on a lot though. Idea validation, branding, websites, payments, ads, lead generation, reporting. I\u2019d want to know where the system is genuinely making decisions and where it is mainly automating setup. The green, yellow, red verdict also caught my attention. Has Denovo ever told a founder not to build something, and what evidence does it use to make that call? That could be one of the most valuable parts if it is willing to be blunt.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@os_ishmael great question!<br \/>\nI have been heads down building the product for over 12 months now. So, all of those integrations and functionalities took time to build. The hardest part has been making sure that all of those functionalities and integrations would feel in harmony with each other like an opera concert. We were able to do so thanks to the constant flow of product feedback coming from our customers.<br \/>\nRegarding the idea validation phase, Denovo is able to provide you a score based on your current competitors, market growth rate and builds a financial model projections for the potential revenue that your idea could generate in 3 years. The system then compares it with existing ideas on the platform to see where it stands in terms of risks and feasibility. The questions Denovo answers are: How much can you make? Is it easy to build? Is there any legal risks? Is someone else already doing this? Then it helps refining it to find your niche or getting clarity into what your unique value proposition could be. Hope this helps. What are you planning to build or are you already building?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping! The gap between &#8220;I built a working thing over the weekend&#8221; and &#8220;someone paid me for it&#8221; is where most of these projects die. Nice to see someone aiming at that specific step. What does the first week with Denovo actually look like for a solo builder?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@ben_kahan after defining the right market, USP and ICP, you will build your brand assets, website, pitch decks, and then start generating some marketing assets. Then auto mode kicks in. This is when Denovo starts sending cold emails and setting up your advertising campaigns to get real traction. Would love to see what you build bro!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Impressive scope for a single builder, transition from ML researcher to building a full-stack solo product is no joke, massive respect, qq how are you handling domain warmups so the automated outreach emails don&#8217;t instantly hit spam folders? Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@saverio_pulizzi3\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"saverio_pulizzi3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saverio_pulizzi3<\/a> \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@priya_kushwaha1 thank you! It hasn\u2019t been easy but it has been fun building it \ud83d\ude42 To activate automated email marketing a founder needs to connect a Gmail account. Then the system does not send more than 30 emails per day. What are you planning to build?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@saverio_pulizzi3 thats great but what about when I need to strengthen my reach out emails, is it configurable or always 30<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats Saverio! The framing about the distance between an idea and a paying customer rings true, so many vibe-coded apps die at distribution rather than at code. Does the validation step ever tell people plainly that an idea is not worth building, or does it always suggest a pivot?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@doganakbulut it always suggests a pivot but it provides a score that turns red if is too low. This means if the founder wants to enter an already saturated market or if their idea is too hard to build.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As a solo founder with a good portion of this already setup (stripe, website, etc) how much can Denovo can be used a la carte vs everything together? Meaning can I utilize Denovo simply for growth?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@jacob_sherwood yes you can! Just provide Denovo with your existing website url<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does Denovo work well for B2B SaaS, or have you seen ecommerce brands succeed with it too? \ud83e\udd14<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@roopreddy our top category are e-commerce businesses<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How is this different from the 100000000 other things that do that same thing.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@bob_ping who is building a full stack web application with hosting and database included while also running your ads and email marketing for $25\/month? I haven\u2019t seen anything like Denovo.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@bob_ping also you might want to check our founders feed &#8211; Denovo.dev\/feed<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@bob_ping if you mention Polsia or Lovable, I strongly advice you to do a trial of Denovo because trust me it is a different world \ud83d\ude42<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping. What are the other GTM options you plan to add? <\/p>\n<p>Some feature ideas: <br \/>&#8211; LinkedIn outreach <br \/>&#8211; SaaS directory submission <br \/>&#8211; Social media marketing <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@syed_shayanur_rahman awesome recommendations! We will start working on those straight away!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Denova = Vibe coding app + AI SDR + AI Performance Marketer. Did I get it right? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@ragsyme yes perfect pitch<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the positioning, particularly because building has become easy, but distribution is still where most founders struggle. Congrats on the launch!&nbsp;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@himani_sah1 thank you!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks like <a href=\"https:\/\/www.producthunt.com\/products\/nas-io\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"nas-io\" target=\"_blank\" rel=\"noopener\">@Nas.com<\/a> for startups. We do it for creators \ud83d\ude09 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@nuseir_yassin1 great! how is it going?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations. This feels like the logical next step after vibe coding. Build, launch, acquire customers. Repeat. Good stuff. \ud83d\ude0a<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@zerotox Repeat and improve through a feedback loop so AI knows what\u2019s the next best business action<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How is the outreach personalized? Are the emails generated uniquely for every prospect or based on templates?? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@divya_kothari1 they are generated custom based on the prospect data<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Having Stripe added to the product from Day 1 is amazing. Too many makers \/ builders leave it for later. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@ankur_jeswani yes, this allows to try to monetize as soon as possible<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How accurate the market validation is before building? Have you seen founders completely change direction because of Denovo&#8217;s feedback?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@iamanantgupta yes, a lot of founders change direction and keep iterating and refining their ideas until they are happy and start building. Iteration is key and designed in the system.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The gap between a working prototype and someone actually paying is where most of these projects die. I&#8217;m curious whether it touches pricing and packaging or just the checkout plumbing. When you say &#8220;paying customers,&#8221; does it help figure out what to charge, or only collect it once you&#8217;ve decided?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@artem_fedorovich it suggests you a pricing structure based competitors. The model logic is built around unlocking the funnel: visitors, sign ups, active sign up, trial, paying customers. At each step there are agentic feedback loops that helps optimise the strategy around cold emails and ad campaigns. Let me know if you have any further questions and would love to get your feedback if you sign up for the trial. Thank you!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/products\/denovo-business-manager\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"denovo-business-manager\" target=\"_blank\" rel=\"noopener\">@Denovo<\/a> &#8211; this looks great, but what if I already have an app and website &#8211; how does this work, do you have plans just for marketing and growth.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@codeandsea you can connect existing GitHub repository or if you don\u2019t want to vibe code just provide and setup your existing app URL. Denovo will promote your existing app url. Thank you and great question!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The gap between building the thing and getting someone to pay for it is where most vibe-coded projects die, so that&#8217;s the right target. The autonomous framing is ambitious though. What does the first paying customer actually look like, and how much is the founder still in the loop?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@lucasjpols the whole auto mode has decision gates embedded so if the founder wants they stay in control of everything. Every email sent, every ads launched and every post posted on social media. They can decide whether those tasks are executed autonomously or whether they want to be in the loop.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I work with a lot of startups in the education space and something like this can totally get them to market faster, nice job!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@kelly_king3 thank you! I would love to see what you build! If you have any questions or need some support feel free to email me at <a href=\"mailto:saverio@denovo.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">saverio@denovo.dev<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>solo-building this whole surface is wild, congrats. the part I&#8217;d want to understand before handing over Stripe and ad spend: when the growth engine sets up a Meta ads campaign on its own, does it launch and start charging the card right away, or does it wait for the founder to see the campaign once before it goes live? &#8220;you wake up to work you didn&#8217;t do&#8221; is a great pitch for the email side, but ad spend is real money leaving an account unattended, that&#8217;s a different risk tier than a cold email that just gets ignored if it&#8217;s off target.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@galdayan we have implemented decision gates so that founders are always in control of what goes live. Great question!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">This seems like it would be very helpful! Having it come with Stripe built-in is a lifesaver.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@thediffidentgarlicbread time to market is key so this is speeding up the process<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats Saverio, solo-building this scope is genuinely impressive! I run outbound for my company, so here\u2019s my question: the pitch says 100M leads but the sending is 30 emails a day through the founder\u2019s Gmail. At that pace list quality is everything, so how does Denovo handle the compliance side? Things like where the verified leads are sourced, opt-out handling, and keeping a founder\u2019s personal Gmail out of trouble with GDPR in EU markets. The founders using this won\u2019t know cold email rules, so Denovo has to know them for them.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations&nbsp;on&nbsp;the&nbsp;second&nbsp;launch.&nbsp;I&nbsp;noticed&nbsp;the&nbsp;acquisition&nbsp;side&nbsp;runs&nbsp;on&nbsp;cold&nbsp;email.&nbsp;The&nbsp;hard&nbsp;part&nbsp;there&nbsp;is&nbsp;choosing&nbsp;who&nbsp;to&nbsp;email,&nbsp;since&nbsp;a&nbsp;small,&nbsp;precise&nbsp;list&nbsp;usually&nbsp;beats&nbsp;volume.&nbsp;How&nbsp;do&nbsp;the&nbsp;agents&nbsp;decide&nbsp;who&nbsp;the&nbsp;right&nbsp;people&nbsp;are?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@alieksia Denovo has a clear understanding of your ideal customer profile, so it finds leads that matches your product offerings. What are you building?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">How does it handle users who already have an existing setup they don\u2019t want to replace completely?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@hamza_afzal_butt you can provide your website url to inside the auto mode settings. This will tell the agent to promote your existing website, you can also upload existing branding assets or documents via the chat. What are you building?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The verdict step before building is what I would use this for. When I looked into my own idea properly, what mattered was not whether it could be built but that several versions of it already existed. That changed how I positioned it instead of stopping me. A red light that only says stop would have been the wrong call in my case. Having that step sit before the building at all is more than most offer. Congrats on shipping it!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@etiennegarcia thanks Etienne! This is step 1 that most founders skip. However, getting your product ready and launch as soon as possible to get feedback from the market is another very valuable set of features that Denovo does for you. Are you currently building?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping. The Stripe piece is the part I keep coming back to \u2014 wiring Connect the moment someone picks a domain means onboarding a merchant account per business, and platform review is usually what slows that down. Did you have to get Denovo approved as a Connect platform before any of those 15,000 could take a payment, or does each founder end up with their own standalone account?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@vollos we give founders control to decide whether they want the built in stripe connect or their own stripe account. Yes, we had to get approved first. Thanks for asking! Are you building on Denovo or using other platforms?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@vollos this is a great question and I think you will love testing the product on a free trial!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m pretty new to Product Hunt but I have been building with Denovo for 2 months now and can say I absolutely love it and all the upgrades I&#8217;ve seen added in that time. I can also say that Denovo will definitely tell you if you have a bad idea or three. I was searching and trying other programs for about a year when I found Denovo. It really does work as advertised. Saverio really does take user suggestions to heart also.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@marcie_tomb thank you Marcie! It is a pleasure to have you building on Denovo. You are one of the best founders on the platform. Your feedback has been very helpful in shaping the product. I am excited to follow your journey with Deskstack and more! <a href=\"https:\/\/www.deskstack.net\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.deskstack.net\/<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#4<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/P3XBZI4J2DWVBF\" class=\"app-title\">\/mission for Claude Code<\/a><\/p>\n<div class=\"one-liner\">Give Claude Code missions to spawn a team of agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">266<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\/mission for Claude Code \u901a\u8fc7\u5728 Claude Code \u5185\u90e8\u5c06\u5927\u578b\u4efb\u52a1\u5206\u89e3\u4e3a\u591a\u4e2a\u667a\u80fd\u4f53\u534f\u540c\u5de5\u4f5c\uff0c\u89e3\u51b3\u4e86\u5355\u6b21\u7f16\u7a0b\u4f1a\u8bdd\u65e0\u6cd5\u5904\u7406\u590d\u6742\u3001\u8de8\u4e0a\u4e0b\u6587\u9879\u76ee\u5f00\u53d1\u7684\u75db\u70b9\uff0c\u8ba9\u5f00\u53d1\u8005\u4ece\u7e41\u7410\u7684\u534f\u8c03\u5de5\u4f5c\u4e2d\u89e3\u653e\u51fa\u6765\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e9bcc260-70db-464a-a2e0-24b5cbccdd55.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2cadb852-b0dd-43e3-8789-362096599b51.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a2616a86-cc78-49ed-81fa-5570bba3c03a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/05109567-b310-4153-8b48-6bb6028183e7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d4784d50-9bba-41a8-8488-f84a6fd65698.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2a63d3b0-fe4e-4d49-926b-7d0bd6afc7c2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9b8c236d-8620-456f-9724-8406b7c590c2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/95c6668c-58ff-42ea-bb47-985a9fda4e7c.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/xe7bj3b5Aw0\"><source src=\"https:\/\/youtu.be\/xe7bj3b5Aw0\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7a0b\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u591a\u667a\u80fd\u4f53\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u7f16\u6392<\/span><br \/>\n            <span class=\"tag\">Claude Code\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4eba\u673a\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u5ba1\u67e5<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u70b9\u96c6\u4e2d\u5728\u4fe1\u4efb\u4e0e\u5b89\u5168\u673a\u5236\uff0c\u5982\u201c\u6ce8\u610f\u529b\u961f\u5217\u201d\u7684\u89e6\u53d1\u6761\u4ef6\u662f\u56fa\u5b9a\u89c4\u5219\u8fd8\u662fAI\u81ea\u4e3b\u5224\u65ad\uff0c\u4ee5\u53ca\u591a\u4ee3\u7406\u5982\u4f55\u907f\u514d\u4ee3\u7801\u51b2\u7a81\u3002\u6b63\u9762\u53cd\u9988\u5305\u62ec\u5bf9\u957f\u4efb\u52a1\u5904\u7406\u80fd\u529b\u3001\u65e0\u9700\u5207\u6362\u754c\u9762\u548cBYOK\u6a21\u578b\u652f\u6301\u7684\u8ba4\u53ef\u3002\u6838\u5fc3\u5efa\u8bae\u662f\u63d0\u9ad8\u7cfb\u7edf\u5bf9\u4e0d\u53ef\u9884\u89c1\u98ce\u9669\u7684\u5904\u7406\u900f\u660e\u5ea6\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \/ mission \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u5b83\u53d1\u660e\u4e86\u65b0\u7684AI\u6a21\u578b\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u75db\u70b9\uff1a\u5f53\u524d\u7684\u5355\u4f53\u7f16\u7a0bAgent\uff08\u5982Claude Code\uff09\u5728\u5904\u7406\u8de8\u4f1a\u8bdd\u7684\u590d\u6742\u4efb\u52a1\u65f6\uff0c\u5176\u201c\u4e0a\u4e0b\u6587\u7a97\u53e3\u201d\u548c\u201c\u4efb\u52a1\u8bb0\u5fc6\u201d\u5c31\u662f\u6700\u5927\u7684\u5929\u82b1\u677f\u3002\u5f00\u53d1\u8005\u88ab\u8feb\u6210\u4e3a\u4eba\u8089\u534f\u8c03\u5668\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9AI\u6548\u7387\u7684\u6d6a\u8d39\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Medley\u901a\u8fc7\u201c\u4efb\u52a1\u89c4\u5212-\u5206\u89e3-\u6267\u884c-\u5ba1\u67e5\u201d\u7684\u95ed\u73af\uff0c\u5c1d\u8bd5\u5c06AI\u4ece\u201c\u9ad8\u7ea7\u81ea\u52a8\u8865\u5168\u201d\u63a8\u5411\u201c\u9879\u76ee\u7ea7\u534f\u4f5c\u8005\u201d\u3002\u5176\u57fa\u51c6\u6d4b\u8bd5\u6210\u7ee9\uff08\u5982Terminal-Bench 93.25%\uff09\u5e76\u975e\u6765\u81ea\u6a21\u578b\u672c\u8eab\u7684\u8fdb\u5316\uff0c\u800c\u662f\u201c\u7f16\u6392\u5de5\u7a0b\u201d\u7684\u80dc\u5229\uff0c\u8fd9\u63ed\u793a\u4e86\u5f53\u524dAI\u5e94\u7528\u4ea7\u54c1\u5316\u7684\u6b63\u786e\u65b9\u5411\uff1a\u4e0d\u662f\u6b7b\u78d5\u6a21\u578b\u80fd\u529b\uff0c\u800c\u662f\u901a\u8fc7\u7cfb\u7edf\u67b6\u6784\u5f25\u8865\u6a21\u578b\u7684\u77ed\u677f\uff0c\u69a8\u5e72\u73b0\u6709\u6a21\u578b\u7684\u6f5c\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u6838\u5fc3\u6311\u6218\u5728\u4e8e\u4fe1\u4efb\u4e0e\u81ea\u6cbb\u7684\u5e73\u8861\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u201c\u6ce8\u610f\u529b\u961f\u5217\u201d\u7684\u8ba8\u8bba\u4e00\u9488\u89c1\u8840\uff1a\u56fa\u5b9a\u89c4\u5219\u53ef\u5ba1\u8ba1\u4f46\u6b7b\u677f\uff0cAI\u81ea\u4e3b\u5224\u65ad\u7075\u6d3b\u4f46\u4e0d\u53ef\u63a7\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u81ea\u52a8\u9a7e\u9a76L2\u5230L4\u7684\u535a\u5f08\u3002\u76ee\u524dMedley\u91c7\u7528\u201c\u4e24\u8005\u7686\u6709\u201d\u7684\u65b9\u6848\uff0c\u662f\u52a1\u5b9e\u7684\uff0c\u4f46\u201cAI\u5224\u65ad\u4f55\u65f6\u9700\u8981\u4eba\u7c7b\u4ecb\u5165\u201d\u8fd9\u4e2a\u5143\u95ee\u9898\uff0c\u4e00\u65e6\u641e\u9519\uff0c\u540e\u679c\u6bd4\u51b7\u51b0\u51b0\u7684\u89c4\u5219\u5931\u8d25\u66f4\u53ef\u6015\u3002\u6b64\u5916\uff0c\u591aAgent\u534f\u8c03\u5e26\u6765\u7684\u201c\u7f16\u8f91\u51b2\u7a81\u201d\u548c\u201c\u9884\u7b97\u5931\u63a7\u201d\u7b49\u5de5\u7a0b\u96be\u9898\uff0c\u867d\u7136\u5b98\u65b9\u7ed9\u51fa\u4e86\u521d\u6b65\u65b9\u6848\uff0c\u4f46\u5728\u771f\u6b63\u7684\u590d\u6742\u9879\u76ee\u5b9e\u6218\u4e2d\uff0c\u5176\u9c81\u68d2\u6027\u4ecd\u6709\u5f85\u9a8c\u8bc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u800c\u8a00\u4e4b\uff0c\/mission \u91cd\u65b0\u5b9a\u4e49\u4e86\u201c\u63d0\u793a\u5de5\u7a0b\u201d\u7684\u7c92\u5ea6\u2014\u2014\u4ece\u201c\u63d0\u793a\u8bcd\u201d\u8fdb\u5316\u5230\u201c\u63d0\u793a\u7cfb\u7edf\u201d\u3002\u5bf9\u4e8e\u5df2\u7ecf\u53d7\u591f\u4e86\u5355\u6b21\u4f1a\u8bdd\u9650\u5236\u7684\u5f00\u53d1\u8005\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6781\u5177\u5438\u5f15\u529b\u7684\u201c\u7701\u529b\u6760\u6746\u201d\u3002\u4f46\u4ea7\u54c1\u4ece\u201c\u6709\u8da3\u7684\u5de5\u5177\u201d\u8d70\u5411\u201c\u751f\u4ea7\u73af\u5883\u7684\u57fa\u77f3\u201d\uff0c\u8fd8\u9700\u8981\u5728\u201c\u53ef\u89e3\u91ca\u6027\u201d\u548c\u201c\u5b89\u5168\u515c\u5e95\u201d\u673a\u5236\u4e0a\uff0c\u7ed9\u51fa\u66f4\u8ba9\u5f00\u53d1\u8005\u5b89\u5fc3\u7684\u7b54\u6848\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">\/mission for Claude Code<\/span>\n                <\/div>\n<div class=\"comment-content\">Medley is a free Claude Code plugin for work bigger than one session. Type \/mission to turn an outcome into a live graph, coordinate Claude Code and Codex workers, review the result, and keep going. BYOK via OpenRouter for Kimi, GLM, and more.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the attention queue is the part I&#8217;d want to understand before trusting this with anything real. what decides something belongs there &#8211; a fixed list of trigger conditions (destructive git ops, spend over some threshold, secrets access) or does the orchestrator itself decide mid-mission what needs a human? the first is auditable, the second has the same problem every self-judging agent has: it only escalates what it&#8217;s already confident is risky, which isn&#8217;t the same as catching what actually is. curious which one this is, since the benchmark numbers don&#8217;t really tell me that<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Great question <a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;, Much like working with any teammate or employee you would want them to come to you for concrete things you tell them to but also if there are things they discover on their own and need your judgement on.<\/p>\n<p>The product hence currently supports both:<\/p>\n<ol>\n<li>\n<p>User defined guardrails which you can see in the contract and the agents and workers actively monitor for these, and<\/p>\n<\/li>\n<li>\n<p>An agent that determines when something needs user attention since for truly large and ambiguous tasks there is new information and emergent work which the user cannot always predict ahead of time.<\/p>\n<\/li>\n<\/ol>\n<p>That said, the system today does still rely on AI and is something we are always looking to improve with more code enforced guardrails and user feedback.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>5<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Interesting point that is a key part of building trust<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve been using Medley to build Medley for quite a while now, and it&#8217;s become one of those tools that&#8217;s hard to imagine working without.<\/p>\n<p>One of the coolest moments was realizing we only needed a skill in the same repo for Medley to start testing and improving itself. I&#8217;d hand it an entire feature, and it would break the work down, execute the tasks, test the implementation, and keep making progress on its own. Most of the time, it only came back when it genuinely needed my input.<\/p>\n<p>What I enjoyed most was how easy it was to steer. Instead of constantly orchestrating everything, I could jump into just the part that needed my attention while Medley handled the rest. It made building Medley faster, smoother, and honestly a lot more enjoyable.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ashwin here, co-founder and CTO.<\/p>\n<p>We built Medley because we kept hitting the same wall with coding agents: once the work spanned multiple sessions, we became the orchestrator. We split the job up, moved context between agents, reviewed outputs, and decided what should happen next.<\/p>\n<p><strong>\/mission<\/strong> takes on that orchestration.<\/p>\n<p>Give Medley the outcome, budget, and constraints. It plans the work, coordinates Claude Code and Codex workers, reviews the result, and keeps going. Anything that needs your judgment or approval appears in the attention queue.<\/p>\n<p>Before launch, we pressure-tested Medley on four public benchmarks. It set a new state of the art on all four\u2014from coding to healthcare and drug discovery.<\/p>\n<p>Missions start in Claude Code today. Medley can coordinate Claude Code and Codex workers. With your own OpenRouter key, Codex workers can also run models such as Kimi and GLM.<\/p>\n<p>We\u2019re excited to see what people hand it. Tell us what you try first, where it works, and where it breaks.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \u2014 Akshay here, co-founder of Spine AI, the team behind Medley.<\/p>\n<\/p>\n<p>Today we\u2019re launching <strong>\/mission<\/strong>, a free Claude Code plugin for work bigger than one agent session.<\/p>\n<\/p>\n<p>Once a job outgrows one session, you become the harness: breaking it into prompts, moving context, reviewing outputs, and deciding what happens next.<\/p>\n<\/p>\n<p>Type \/mission and give Medley the outcome, budget, and constraints. It builds a live dependency graph, coordinates Claude Code and Codex workers, reviews the assembled result, and keeps going when execution reveals more work.<\/p>\n<\/p>\n<p>You can watch and steer the mission in your browser. Anything that needs your judgment or approval appears in the attention queue; everything else keeps moving.<\/p>\n<\/p>\n<p>Before launch, we pressure-tested a benchmark-specialized version of the same architecture on four complete public benchmarks. Medley scored 93.25% on Terminal-Bench 2.1, 71.37 on HealthBench Professional, 93.24% on ViBench, and 60.98% on DrugDiscoveryBench &#8212; the highest reported result we found on each.<\/p>\n<\/p>\n<p>That spans coding, healthcare, and drug discovery.<\/p>\n<\/p>\n<p>No new foundation model. The gains came from how the work was decomposed, routed, carried across contexts, and reviewed.<\/p>\n<\/p>\n<p>Medley is <strong>free<\/strong> on Mac. Missions start in Claude Code, and Medley can coordinate Claude Code and Codex workers. It uses your existing subscriptions or API access; with your own OpenRouter key, you can run models like Kimi and GLM through Codex.<\/p>\n<\/p>\n<p>Install it from Claude Code:<\/p>\n<\/p>\n<pre><code>\/plugin marketplace add Spine-AI\/medley\n\/plugin install medley\n\/reload-plugins<\/code><\/pre>\n<\/p>\n<p>Then run:<\/p>\n<\/p>\n<pre><code>\/mission<\/code><\/pre>\n<\/p>\n<p>Try it on the biggest job you would normally split across sessions. We\u2019d love to hear where it works, where it breaks, and what you hand it next.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Bad news. I just used this in Claude to run a longer mission to create outbound emails + find leads. The good: The final result is incredibly good when the mission is complete&#8230; most times Claude or other LLMs give you a half finished output and you spend hours of back and forth chatting. Plus I can use this with my existing subscriptions. The bad: Less time with my girlfriend while I spend any time I have using Medley \ud83d\ude00<\/p>\n<\/p>\n<p>This has been essential to my workflow as a growth member of the team \ud83d\udc4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The first product I\u2019ve seen that supports long-running missions directly inside Claude Code\u2014combining the power of coding agents to tackle ambitious tasks.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Wow! It&#8217;s really interesting that the benchmark improvements came from orchestration rather than a new foundation model. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@krutiparekh16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krutiparekh16<\/a>&nbsp;Thanks Kruti! Exactly \u2014 a lot of the recent work on multi-agent systems and harness engineering is about taking already-capable models, working around their weak spots, and getting more out of their strengths. That&#8217;s the direction we studied, and we built a harness that pushes the models&#8217; capability higher.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I feel I was too late starting to use Claude Code. But immediately in a week I realised the Claude Code doesn&#8217;t get the context properly especially if it&#8217;s a long running task. Hence, I love the idea of orchestrating multiple coding agents instead of manually passing context between them through Medley. I will give it a try. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Absolutely <a href=\"https:\/\/www.producthunt.com\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;!<\/p>\n<p>Looking forward to hearing your feedback.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really like that this meets developers inside Claude Code instead of pulling them into yet another app. I can see it helping with those messy refactors that are secretly five tasks pretending to be one. How do you keep a team of spawned agents from stepping on each other&#8217;s changes in the same repo?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Absolutely <a href=\"https:\/\/www.producthunt.com\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>! We didn&#8217;t want users to learn a new interface to get started.<\/p>\n<p>The planning agent makes sure to keep the work and files isolated across the agents when running them in parallel. As a fallback the agents are smart enough to reconcile conflicts and if not the reviewer steps in and handles it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@coolstorm\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"coolstorm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@coolstorm<\/a> Since a mission runs on an outcome, budget, and constraints upfront, what happens when a long mission burns through that budget faster than planned? Does Medley scale the plan back to fit what&#8217;s left, or pause and surface the tradeoff before continuing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hey <a href=\"https:\/\/www.producthunt.com\/@clement_avq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clement_avq<\/a>&nbsp;<\/p>\n<p>When a mission starts, it plans against the outcome, constraints, and available budget from the outset , Today, if the available budget is fully exhausted, execution pauses and asks you to approve a budget increase before continuing. If you&#8217;re using Claudes subscription, you can also choose an open-ended budget mode, where the mission continues until your subscription limits are reached and resumes once those limits reset if needed.<\/p>\n<p>In practice, missions should rarely burn through a budget unexpectedly because planning happens with provider availability in mind. Before execution even begins, Medley distributes work across the providers you&#8217;ve connected, routing tasks to the models that are best suited for them while avoiding overloading any single provider. This lets you take advantage of free or unused quotas across multiple providers instead of exhausting one account first.<\/p>\n<p>If you have stronger limits or prefer a specific model, you can also override the default routing in settings and bias more work toward a particular provider. That gives you control when you know a provider has better quotas or a model that&#8217;s especially well suited for the mission you&#8217;re running.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">This looks like an interesting way to bring more structure to Claude Code workflows. How does it handle situations where the AI takes a different approach than the developer expected?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hamza_afzal_butt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hamza_afzal_butt<\/a>&nbsp;The plans of the agent are always shown before the work is started in &#8220;gated&#8221; review mode and you can always inspect and steer the work done via the dashboard UI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>To summarise this launch: project management built directly into AI-assisted software development <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping. It&#8217;d be interesting if missions could automatically estimate cost, runtime, and complexity before execution. Is this feature already available? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@syed_shayanur_rahman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@syed_shayanur_rahman<\/a>&nbsp;This is often hard to do given task complexity and model costs and latency vary quite a bit. The planner can do a rough estimate for most tasks where there is no emergent work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How Medley handles conflicting outputs when two agents solve the same problem differently? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The BYOK approach is a nice bonus for teams already invested in different model providers. \ud83d\ude0a<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How would Medley figure which agent comes next versus continuing with the current one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Fantastic! This solves a pain every Claude Code user eventually runs into projects rarely fit inside a single session anymore. \ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Very cool, congrats on the launch. Is this tool usable \/ feasible for Pro \/ Max users who aren&#8217;t primarily interfacing via the API?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Spawning a team of agents is the easy part. The hard part is they step on each other and you end up reviewing merge conflicts instead of features. How does \/mission handle scope boundaries between agents? That&#8217;s usually where multi-agent setups fall apart.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The benchmark numbers are the headline, but the line I keep re-reading is &#8220;it uses your existing subscriptions or API access.&#8221;<\/p>\n<\/p>\n<p>If a mission coordinates several Claude Code and Codex workers at once, the binding constraint for most solo people isn&#8217;t dollars \u2014 it&#8217;s the plan&#8217;s rate limit. Parallel workers on a subscription hit a wall that a per-token budget doesn&#8217;t describe.<\/p>\n<\/p>\n<p>So: what is &#8220;budget&#8221; denominated in when the workers are running on a subscription rather than an API key? And does the orchestrator know the difference \u2014 does it throttle its own fan-out when it&#8217;s running against a plan limit, or does it plan the graph as if capacity were unbounded and find out on the way?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>orchestration is the visible problem, but the one that actually bit us was memory across sessions. splitting work between agents is fine. what breaks is session four not knowing that session two already tried an approach and abandoned it, so it walks cheerfully back into the same dead end.<\/p>\n<p>so the bit I&#8217;d want is a durable record of what was attempted and rejected, not just what was decided. does the contract cover that, or only the forward-looking guardrails?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/DBV5VMI6JYIDKZ\" class=\"app-title\">ClinicFrame <\/a><\/p>\n<div class=\"one-liner\">Like Granola, but for healthcare. Fully HIPAA-compliant.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">190<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ClinicFrame\u662f\u4e00\u6b3e\u7b26\u5408HIPAA\u6807\u51c6\u7684\u684c\u9762\u7aefAI\u533b\u7597\u7b14\u8bb0\u5de5\u5177\uff0c\u901a\u8fc7\u5b9e\u65f6\u8bb0\u5f55\u533b\u60a3\u5bf9\u8bdd\u5e76\u81ea\u52a8\u751f\u6210\u7ed3\u6784\u5316\u4e34\u5e8a\u7b14\u8bb0\uff0c\u8ba9\u533b\u751f\u4e13\u6ce8\u4e8e\u60a3\u8005\u800c\u975e\u6587\u4e66\u5de5\u4f5c\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a09a43f2-0d7c-4134-aad1-255a410be792.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/39d41056-8ab7-4166-838d-87ead916377e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5e260517-a22c-4b36-a309-3c82147d9ae5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1543f9c8-08d8-42a6-b685-167ab1359690.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c19e47f8-238b-40e5-92e0-9cca5a1f52c3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a5e5808b-e4a5-4559-9603-5ee4f0816186.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/0377ae2f-0bae-4a29-8148-805a6379082c.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/5tytZQRTMdQ\"><source src=\"https:\/\/youtu.be\/5tytZQRTMdQ\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Medical<\/span><br \/>\n            <span class=\"tag\">Health<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u533b\u7597\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">HIPAA\u5408\u89c4<\/span><br \/>\n            <span class=\"tag\">\u4e34\u5e8a\u6587\u6863\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u533b\u751f\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8bed\u97f3\u8f6c\u5199<\/span><br \/>\n            <span class=\"tag\">\u7535\u5b50\u75c5\u5386\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u8fdc\u7a0b\u533b\u7597<\/span><br \/>\n            <span class=\"tag\">\u533b\u7597\u667a\u80fd\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u533b\u7597\u5de5\u4f5c\u6d41<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5f3a\u8c03\u5408\u89c4\u6027\u4e3a\u57fa\u77f3\uff0c\u8d5e\u8d4f\u684c\u9762\u539f\u751f\u8bbe\u8ba1\u907f\u514d\u7b2c\u4e09\u65b9\u4fb5\u5165\uff1b\u5173\u952e\u95ee\u9898\u5305\u62ec\u8bb0\u5f55\u524d\u9700\u60a3\u8005\u77e5\u60c5\u540c\u610f\u3001\u8d26\u5355\u7f16\u7801\u987b\u5f3a\u5236\u5173\u8054\u7b14\u8bb0\u8bc1\u636e\u884c\u3001\u6743\u9650\u7ba1\u7406\u9700\u660e\u786e\uff1b\u5efa\u8bae\u805a\u7126\u201c\u65e0\u804a\u53ef\u9760\u201d\u7684\u7b14\u8bb0\u540e\u518d\u6269\u5c55\u4fdd\u9669\u7406\u8d54\u529f\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                ClinicFrame\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u50cf\u540c\u8d5b\u9053\u7684\u73a9\u5bb6\u90a3\u6837\u4ece\u201cAI\u5199\u7b14\u8bb0\u201d\u5207\u5165\uff0c\u800c\u662f\u4ece\u201c\u5408\u89c4\u57fa\u7840\u8bbe\u65bd\u201d\u505a\u8d77\u2014\u2014\u5148\u7528\u4e09\u5e74\u6253\u78e8\u51fa\u6709BAA\uff08\u4e1a\u52a1\u5408\u4f5c\u534f\u8bae\uff09\u4fdd\u969c\u7684\u5e95\u5c42\uff0c\u518d\u987a\u52bf\u63a8\u51fa\u7b14\u8bb0\u5de5\u5177\u3002\u8fd9\u4f7f\u5176\u89c4\u907f\u4e86\u533b\u7597AI\u666e\u904d\u9677\u5165\u7684\u201c\u5148\u6269\u5f20\u540e\u5e94\u4ed8\u5408\u89c4\u201d\u7684\u6b7b\u80e1\u540c\uff0c\u4ee5\u201c\u5408\u89c4\u662f\u5730\u677f\u800c\u975e\u6ea2\u4ef7\u201d\u7684\u5b9a\u4ef7\u7b56\u7565\u89e3\u6784\u4e86\u5de8\u5934\u4eec\u7684\u5784\u65ad\u95e8\u69db\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u7684\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\uff1a\u5b83\u628a\u533b\u751f\u6700\u538c\u6076\u7684\u201c\u5f55\u4e24\u6b21\u7b14\u8bb0\u201d\u548c\u201c\u9690\u6027\u5408\u89c4\u98ce\u9669\u201d\u6253\u5305\u89e3\u51b3\u4e86\uff0c\u5e76\u901a\u8fc7\u684c\u9762\u539f\u751f\u8bbe\u8ba1\u660e\u786e\u5212\u6e05\u4e86\u201c\u8f85\u52a9\u8bb0\u5f55\u201d\u4e0e\u201c\u533b\u7597\u51b3\u7b56\u201d\u7684\u754c\u9650\u3002\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u8bc4\u8bba\u4e2d\u591a\u6b21\u8ffd\u95ee\u7684\u201c\u8d26\u5355\u7f16\u7801\u4e0e\u7b14\u8bb0\u8bc1\u636e\u884c\u7ed1\u5b9a\u201d\u673a\u5236\uff0c\u624d\u662f\u4ea7\u54c1\u80fd\u5426\u4ece\u201c\u597d\u7528\u7684\u5de5\u5177\u201d\u8fdb\u9636\u4e3a\u201c\u5b89\u5168\u7684\u5de5\u4f5c\u6d41\u201d\u7684\u5173\u952e\u2014\u2014\u82e5\u53ea\u505c\u7559\u5728\u6f02\u4eae\u7b14\u8bb0\u7684\u8868\u9762\uff0c\u5219\u4e0e\u7ade\u54c1\u65e0\u5f02\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u533b\u7597AI\u7684\u4e0b\u534a\u573a\u4e0d\u5728\u751f\u6210\uff0c\u800c\u5728\u5ba1\u8ba1\u4e0e\u8d23\u4efb\u94fe\u95ed\u73af\u3002\u76ee\u524d\u53ea\u6709ClinicFrame\u6562\u8ba9\u533b\u751f\u770b\u5230\u201c\u8fd9\u7b14\u7f16\u7801\u6765\u81ea\u7b2c7\u884c\u7b2c3\u53e5\u8bdd\u201d\uff0c\u800c\u8fd9\u6b63\u662f\u5176\u672a\u6765\u4ece\u7b14\u8bb0\u5ef6\u4f38\u5230\u4fdd\u9669\u7406\u8d54\uff08RCM\uff09\u7684\u62a4\u57ce\u6cb3\u3002\u4e0d\u8fc7\uff0c\u5982\u4f55\u8ba98,000\u540d\u65e9\u671f\u7528\u6237\u4ece\u201c\u5c1d\u9c9c\u8005\u201d\u8f6c\u4e3a\u201c\u65e5\u5e38\u4f9d\u8d56\u8005\u201d\uff0c\u4ecd\u9700\u89e3\u51b3\u6743\u9650\u5206\u5c42\u3001\u7f16\u8f91\u53cd\u9988\u5faa\u73af\u7b49\u7ec6\u8282\u3002\u65b9\u5411\u5bf9\u4e86\uff0c\u4f46\u8def\u8fd8\u957f\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">ClinicFrame <\/span>\n                <\/div>\n<div class=\"comment-content\">An ambient AI scribe that writes clinical notes in real time so you can focus on your patient. It passively captures every visit, whether in person or virtual, and delivers a complete, structured clinical note the moment the encounter ends. HIPAA compliant, desktop native, and EHR ready in seconds. We&#8217;re launching Scribe today, with a much bigger vision ahead: a medical intelligence platform that goes beyond documentation to support the entire clinical workflow.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Hi Product Hunt \ud83d\udc4b Clemente here, I lead ClinicFrame.<\/strong><\/p>\n<p>Three years ago we launched <a href=\"https:\/\/compliantchatgpt.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CompliantChatGPT<\/a>, a HIPAA-compliant AI assistant for clinicians. More than 8,000 have used it since: therapists, psychologists, oncologists, nurses running home visits. They weren&#8217;t shopping for AI. They came because they were already putting patient information into a consumer chatbot, with no BAA, no audit trail, and no answer for the surveyor who asks where that data went.<\/p>\n<p>After three years of listening to them, the pattern was hard to miss. Almost every conversation ended up at the same place: the note. And most clinicians were writing each one twice, first as scribbles during the visit, then properly, hours later. Notes were never the job. So we built the tool that writes them.<\/p>\n<p>\ud83e\ude7a <strong>What ClinicFrame Scribe does<\/strong><br \/>It listens to the visit, in person or virtual, and writes the structured clinical note as it happens. Desktop native, so nothing joins your call as a third participant. SOAP by default, your own templates on top. You review it, you sign it, you stay the author, and it lands in your EHR in seconds.<\/p>\n<p>\ud83d\udd12 <strong>HIPAA compliance is the floor, not the upsell.<\/strong> <br \/>A BAA comes with the account at self-serve price. Documenting a visit safely shouldn&#8217;t require a procurement cycle and an enterprise contract, which is exactly what the big model providers ask for today.<\/p>\n<p>\ud83e\udded <strong>Today it&#8217;s a scribe. That&#8217;s the starting point, not the plan.<\/strong><br \/>We&#8217;re building the operating system for a clinical practice: the context of every patient, the record of every visit, and the part nobody volunteers for, dealing with insurers. The note is where that starts, because the note is where the billing code comes from. Revenue is what we build next, with the clinician reviewing every code before anything leaves the building.<\/p>\n<p>Most software in a clinic was built for the billing department and handed to the clinician afterwards. We&#8217;re building it the other way around.<\/p>\n<p>\ud83e\uddf1 <strong>Every Ai medical tool on the market started as a scribe.<\/strong> We started three years earlier, on the compliance side, with 8,000 clinicians running real clinical work through a product that had to hold up to a BAA from day one. That&#8217;s the harder half of the problem, and it&#8217;s already done.<\/p>\n<p>\ud83d\udc65 <strong>Who it&#8217;s for:<\/strong> clinicians who document their own visits. Therapists, private practices, home health agencies, small clinics.<\/p>\n<p>\ud83c\udf81 <strong>For the PH community:<\/strong> 50% off for 3 months, on top of the 7-day free trial. No card to start, and onboarding runs a demo visit so you get your first note without waiting for a real patient.<\/p>\n<p>\ud83d\ude4f <strong>Our ask:<\/strong> if you document patient visits, what&#8217;s the one thing you&#8217;d never let a tool do with a session? That&#8217;s the answer I care about most. I&#8217;ll be in the comments all day.<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@chiara_tucci\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chiara_tucci<\/a> <a href=\"https:\/\/www.producthunt.com\/@macarena_balparda\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@macarena_balparda<\/a> <a href=\"https:\/\/www.producthunt.com\/@alan_brande\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alan_brande<\/a> <a href=\"https:\/\/www.producthunt.com\/@dana_fridman\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dana_fridman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dana_fridman<\/a> are here with me today, and thanks to <a href=\"https:\/\/www.producthunt.com\/@mishaal_rashid\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mishaal_rashid<\/a> and <a href=\"https:\/\/www.producthunt.com\/@francesco_domizio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@francesco_domizio<\/a> for the hunt.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@chiara_tucci\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chiara_tucci<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@macarena_balparda\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@macarena_balparda<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@alan_brande\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alan_brande<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@dana_fridman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dana_fridman<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@mishaal_rashid\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mishaal_rashid<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@francesco_domizio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@francesco_domizio<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp; Congrats on the launch, guys. <\/p>\n<p>I&#8217;m curious, are clinicians excited about real-time notes?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@chiara_tucci\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chiara_tucci<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@macarena_balparda\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@macarena_balparda<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@alan_brande\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alan_brande<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@dana_fridman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dana_fridman<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@mishaal_rashid\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mishaal_rashid<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@francesco_domizio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@francesco_domizio<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;Congratulations on the launch, Clemente and the team! \ud83d\ude80<\/p>\n<\/p>\n<p>What really stood out to me is that you started with compliance instead of features. In healthcare, trust isn&#8217;t something you add later. It has to be the foundation.<\/p>\n<p>I also like your perspective that notes are a byproduct of care, not the reason clinicians chose this profession. If technology can give healthcare professionals more time with patients instead of paperwork, that&#8217;s a meaningful improvement.<\/p>\n<\/p>\n<p>I&#8217;m curious, after working with more than 8,000 clinicians, what part of the documentation process were you most surprised people wanted to keep completely under their control? That insight probably says a lot about where AI should assist and where it should simply support. Wishing you an incredible launch! \ud83e\ude7a\ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>There are plenty of AI scribes out there. We know that! But after talking to hundreds of clinicians, we realized the real challenge isn&#8217;t just generating notes. It&#8217;s building something they can actually rely on every single day.<\/p>\n<p>We focused on what matters most: reliability, responsive support, and compliance. No dropped sessions. No unexpected downtime. Just a product that works when clinicians need it most.<\/p>\n<p>We listened closely to our users and built the product they kept asking for.<\/p>\n<p>This launch is much more than an AI scribe for us, it&#8217;s the first step toward a broader vision of medical intelligence that helps clinicians before, during, and after every patient encounter.<\/p>\n<p>Excited to finally share the work of so many months with the world. Thanks everyone for the incredible support here on Product Hunt. We can&#8217;t wait to keep building with your feedback! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/products\/granola\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"granola\" target=\"_blank\" rel=\"noopener\">@Granola<\/a> is known for being sneaky since it doesn&#8217;t inform participants on the call that it&#8217;s recording. Does ClinicFrame alert the patients before they are recorded? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;<\/p>\n<p>This is a very important question.<\/p>\n<p>By law, the patient must ALWAYS be asked for prior consent before recording the session, and it is the doctor\u2019s responsibility to do so.<\/p>\n<p>In our app, the doctor must also confirm that they have obtained prior consent before starting to record. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Not in healthcare myself, but I have watched this team work and the discipline is the thing. Narrow problem, real users, no attempt to be everything at once. Congrats on shipping. Curious how you think about expanding beyond the note itself once clinicians trust the workflow<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;<\/p>\n<p>Thanks. The expansion follows the note, it doesn&#8217;t leave it.<\/p>\n<p>Trust gets earned in order. First the note has to be good enough that you stop editing it. Then the patient context between visits, because the note already holds it and rebuilding that history by hand is the next tax after documentation. Then the revenue side, because the billing code comes out of that same note.<\/p>\n<p>Each step is only allowed by the one before it. We don&#8217;t get to touch a claim until the note is boring and reliable.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>to answer the question you actually asked &#8211; pick a billing code on its own. everything else in the note is a record of what happened, but the code is a claim submitted to a payer, and the liability for it sits with the clinician, not the tool. you mention the clinician reviews every code before it leaves the building, which is the right instinct, but I&#8217;d push on how that review is presented. if the suggested code is shown as &#8220;the note says X, therefore code Y&#8221; it&#8217;s very easy to rubber-stamp under time pressure, same failure mode as any confident-sounding suggestion. does the review step force the clinician to see the specific line in the note the code was derived from, or just approve the code itself<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;<br \/>Right, the code is a different object. The note records what happened. The claim asserts it to a payer, and the clinician signs for it.<\/p>\n<p>So the code never appears on its own. It appears with the exact line in the note it came from, and with whatever is still missing for it to hold. You approve the evidence, not the suggestion.<\/p>\n<p>And when the visit doesn&#8217;t support a code cleanly, we don&#8217;t offer one. We say what&#8217;s missing. Fewer suggestions, each one traceable, is the only version of this that survives an audit.<\/p>\n<p>And after that comes the part where the insurance company denies the claim and we have to file an appeal\u2014and here\u2019s the real magic of it all: if we have the context, the evidence, and the reasons, we can automatically generate the appeal letter for the insurance company.<\/p>\n<p>And of course, everything related to RCM\u2014collecting a percentage of the transaction amount.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Dana here, I work with Clemente on ClinicFrame. Happy to be following the feedback on launch day.<\/p>\n<p>A few weeks ago, I asked my physician whether he reviews my lab results as they arrive, or whether a separate appointment is required for that conversation. His response: &#8216;I see 1,500 patients a week. If I reviewed every patient&#8217;s results personally, I would not sleep. You need to schedule a visit for that.&#8217;<\/p>\n<p>There is real satisfaction in building something clinicians genuinely need, and holding it to the same standard of data privacy that earned the trust of 8,000 clinicians with CompliantChatGPT. Documentation was never meant to take time away from the patient in the room, nor to become additional work left for the end of the day. That is the piece AI can actually take on, without asking a clinician to trade privacy for speed. That is what safe AI should look like.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>So excited to finally see ClinicFrame out in the world! <\/p>\n<\/p>\n<p>We\u2019ve spent a lot of time listening to clinicians and understanding the reality of documentation, and it\u2019s been amazing to see that work turn into a product that can genuinely make their day a little easier.<\/p>\n<\/p>\n<p>If you work in healthcare and have tried ClinicFrame, we\u2019d love to hear what you think. And if you haven\u2019t yet, give it a try and let us know where we can improve. We\u2019re here and listening! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@chiara_tucci\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chiara_tucci<\/a>&nbsp;<\/p>\n<p>The listening part is why the product looks like this. Half of what came out of those conversations was a list of things we decided not to build, which is harder to show on a launch page but shaped this more than any feature did.<\/p>\n<p>Thanks for pushing it over the line. And seconding the ask: if you document visits for a living, tell us where it breaks. That&#8217;s the feedback that actually moves the roadmap.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great product! Good luck \ud83e\udd1e\ud83c\udffd<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@consumerxai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@consumerxai<\/a>&nbsp;<br \/>Thanks An, appreciated \ud83d\ude4f If you know anyone who documents patient visits, send them my way.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch, Clemente! The framing here is what makes it click for me \u2014 starting on the compliance side three years ago and arriving at the scribe from the <em>clinician&#8217;s<\/em> side rather than the billing department&#8217;s. That&#8217;s the opposite of how most of these tools are built, and it shows.<\/p>\n<p>To your question \u2014 the one thing I&#8217;d never let a tool do unsupervised: <strong>close the loop between the note and the claim without the clinician seeing exactly which line justified the code.<\/strong> Gal&#8217;s point above is the whole game. A scribe that writes a beautiful note is table stakes; the trust breaks the moment a suggested billing code gets rubber-stamped under time pressure. If ClinicFrame makes the clinician confront the <em>specific sentence<\/em> the code came from \u2014 not just &#8220;approve Y&#8221; \u2014 you&#8217;re building something structurally safer than anything that treats the code as an afterthought.<\/p>\n<p>Rooting for you. The &#8220;compliance is the floor, not the upsell&#8221; line should be on a billboard.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@camilo_mera\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@camilo_mera<\/a>&nbsp;<\/p>\n<p>Thanks, and you drew the line exactly where we drew it. The clinician signs the claim, so the clinician has to see what it was built on. Anything else moves the liability onto the person with the least visibility.<\/p>\n<p>Your read on the note is right too. Writing a good note is the entry ticket. What happens to that note afterwards is the actual product.<\/p>\n<p>If you end up trying it, tell me where it annoys you. That&#8217;s the feedback I act on fastest.<\/p>\n<p>And I&#8217;ll take the billboard.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One decision we made early was to build ClinicFrame as a desktop app that works quietly in the background. Clinicians shouldn\u2019t have to manage another interface, constantly check that it\u2019s working, or divide their attention between the patient, the EHR, and yet another tool. The best technology fades into the background so clinicians can stay fully present with their patients\u2014that\u2019s the experience we\u2019re building.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on the launch folks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gvanonig\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gvanonig<\/a>&nbsp;Thanks! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Every AI company seems to start with a scribe, but the real opportunity feels much bigger. Once you&#8217;ve captured the clinical conversation, you have the context to improve the entire patient journey. Is that where you see ClinicFrame heading?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch. Putting the BAA at self-serve pricing is a bigger deal than it sounds &#8211; most teams keep that behind a sales call. Something I did not see asked yet: with 8,000 clinicians spread across different practices, in the window after a note is written but before it lands in the EHR, what decides who else in that practice can open it &#8211; your own permissions layer, or whatever the EHR hands back?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>You mention that clinicians remain the author of every note. Have you seen any patterns in what clinicians edit most often before signing? Does that feedback improve future notes?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love that this is desktop native and covers in-person visits, not just telehealth calls. Spending three years on compliance infrastructure before shipping the scribe says a lot about the approach. You mentioned insurance billing workflows are next, will that live inside the same app or become a separate product?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;<\/p>\n<p>It will be inside of the product in another section! <\/p>\n<p>We have all the context! lets just make an amazing UI! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The versioned-amendment answer to Maciej and the traceable-evidence answer to Ansari are the two best answers I&#8217;ve seen on this kind of product, most scribes wave away the audit trail question. One thing I didn&#8217;t see covered: a lot of visits aren&#8217;t just doctor and patient, there&#8217;s a caregiver, a family member translating, sometimes an interpreter on speakerphone. Does the note distinguish who actually said the symptom versus who&#8217;s relaying it secondhand, or does that nuance flatten out in the transcript the same way it would in a rushed human note?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Clemente, this looks really cool, congrats on the launch \ud83d\ude80<\/p>\n<p>You mention that it\u2019s EHR-ready. Are you initially focusing on specific countries and healthcare systems, or is ClinicFrame designed to be international from day one? Healthcare regulations and EHR ecosystems vary so much between countries, so I\u2019m curious how you\u2019re approaching that.<\/p>\n<p>Best of luck today!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lucas_desard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucas_desard<\/a>&nbsp;<\/p>\n<p>Thanks. US first, and deliberately so.<\/p>\n<p>Compliance doesn&#8217;t generalize. HIPAA with a BAA is a specific regime, and PIPEDA or GDPR are not the same work with a different label on it. Doing two jurisdictions halfway is worse than doing one properly, especially when what you&#8217;re selling is trust.<\/p>\n<p>On EHR-ready it&#8217;s worth separating two layers. Getting the note into a chart is the universal part: structured text in the format the record expects, which works in any system in any country. Direct integrations are the part that goes system by system, and those we do one at a time, starting with what our users are actually on.<\/p>\n<p>Canada is the request we hear most after the US, so PIPEDA is the next jurisdiction we look at rather than a hypothetical one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the shadow-IT framing is the strongest part here tbh, you&#8217;re not selling a new habit, just a compliant version of one clinicians already formed on their own. the thing I&#8217;d want to know is edit friction, since the clinician signs the note and carries the liability, so time-to-correct probably matters more than aggregate accuracy.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alex_watson2110\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_watson2110<\/a>&nbsp;<\/p>\n<p>Right, the habit was already there. The only thing we change is where the data goes.<\/p>\n<p>On edit friction, agreed, and the reason is that finding the error costs more than fixing it. Correcting two words takes seconds. Reading the whole note to be sure there&#8217;s nothing to correct is the real tax, and that&#8217;s the one nobody measures.<\/p>\n<p>So what we watch is time from opening the note to accepting it, and how much of that time is reading versus typing. A note that needs no edits but three reads to trust is worse than one where you fix a word and move on. Tracing each line back to the audio exists for exactly that: you check the one line you doubt instead of re-reading the encounter.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Not a clinician. I build compliance software, so I&#8217;m answering sideways.<\/p>\n<p>The one thing I&#8217;d never let a tool do: change anything after a human signed it. Silently, in a background job, with no record of what moved.<\/p>\n<p>Every AI action in my product needs an explicit confirm and an audit log entry. Because &#8220;who changed this and when&#8221; deserves a better answer than &#8220;the model, sometime Tuesday.&#8221;<\/p>\n<p>A signed clinical note is a legal document. An AI that quietly edits it after the fact hasn&#8217;t improved it. It&#8217;s forged it.<\/p>\n<p>You&#8217;ve clearly thought about this already. The part I&#8217;d stress-test is post-signature: re-runs, template migrations, retro-enhancement of old notes.<\/p>\n<p>Congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mlitwiniuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mlitwiniuk<\/a>&nbsp;<\/p>\n<p>You&#8217;re not answering sideways, you&#8217;re answering the part most people skip.<\/p>\n<p>Acceptance closes the document on our side (the formal signature usually lives in the EHR). After that, nothing is edited in place. A change becomes a new versioned entry with its own author and timestamp, and the original stays exactly as it was accepted. That&#8217;s the amendment model clinical records have used for decades, and there&#8217;s no reason for AI to get an exception.<\/p>\n<p>On your three: a better model never re-runs an accepted note, it only touches drafts. A template change applies to future notes and never reformats past ones, so a note keeps the shape it had the day it was accepted. Retro-enhancement is the one we rule out entirely, and it&#8217;s the hardest of the three, because it never arrives as an attack. It arrives as a well-meaning product suggestion: we could re-run last year&#8217;s notes with the new model and they&#8217;d all be better.<\/p>\n<p>&#8220;Forged it&#8221; is the right word for that. If you ever want to compare audit trail designs, I&#8217;m in.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great &amp; Genuine Concept , don&#8217;t you think there&#8217;s need of mobile app for Clinic Frame, To personalize experience?<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8b51e044-5ddb-4c96-9efe-7b16138704f4.webp?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@flutterlysolutions\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@flutterlysolutions<\/a>&nbsp;<\/p>\n<p>Hey, this is a wonderful idea and we are just waiting for the app store approval right now! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ambient audio capture of clinical encounters is genuinely useful but it&#8217;s also the highest-stakes category for AI hallucination, a fabricated medication dosage or an incorrectly captured allergy in a clinical note is a patient safety issue, not just a bad output. What&#8217;s the accuracy validation methodology for ClinicFrame&#8217;s notes, like how are you measuring and communicating accuracy to clinicians who are relying on these notes for clinical decisions?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ansari_adin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ansari_adin<\/a>&nbsp;<\/p>\n<p>You&#8217;re separating the right things. A missed nuance in the narrative and a fabricated dosage are not the same class of error, and reporting one accuracy number is how that second one stays hidden.<\/p>\n<p>So we don&#8217;t track a single score. We look at error rates by content class, and we count omissions and fabrications separately, because they have opposite fixes. For the high-risk classes (medication, dose, allergies, any number) the rule is that nothing enters the note unless it was said in the encounter. The model doesn&#8217;t complete from prior knowledge, and anything unclear is marked as missing rather than filled in.<\/p>\n<p>The second half of your question matters more than the first. Every line traces back to the audio it came from, so review takes seconds instead of a full re-read, and the note stays a draft until the clinician signs it. Accuracy a clinician can&#8217;t inspect isn&#8217;t accuracy, it&#8217;s a claim.<\/p>\n<p>If you&#8217;ve done validation work in this space, I&#8217;d want that conversation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>super needed!!! how do you find yourself different to fireflies?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@serenalam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@serenalam<\/a>&nbsp;<br \/>Thanks. Fireflies is built for meetings, we&#8217;re built for visits, and that changes almost everything downstream.<\/p>\n<p>Three concrete ones. Nothing joins your call as a third participant, which matters because plenty of visits happen in a room, and a bot sitting in a therapy session is a non starter. The output isn&#8217;t a summary with action items, it&#8217;s a structured clinical note in the format your EHR and your payer expect. And the unit of memory is the patient over time, not the meeting.<\/p>\n<p>Compliance is the floor: a BAA comes with the account at self-serve price, not as an enterprise add-on.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m not in healthcare, but the idea really got me. Really, congrats on the execution. The line about clinicians writing every note twice gets to the real problem. The transcription is useful, but cutting out that second round of admin is where the value is. I\u2019d be interested in how ClinicFrame handles situations where the conversation is incomplete, contradictory, or clinically sensitive. Does it clearly flag uncertainty and missing details, or can a polished note make the output look more certain than the visit actually was? Keeping the clinician as the author is the right approach. The review step needs to be genuinely quick without encouraging people to skim.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@os_ishmael\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@os_ishmael<\/a>&nbsp;<\/p>\n<p>Hey! Thanks for your comment, and you&#8217;re absolutely right! <\/p>\n<p>1. We point out any parts that weren\u2019t fully understood to avoid errors.<\/p>\n<p>2. Those comments can be edited, both in the transcript and directly in the note.<\/p>\n<p>3. Once everything is ready, it\u2019s ready to be exported and sent.<\/p>\n<p>The interesting thing is that we\u2019ve seen the quality of the product and the transcription, which allows us to guarantee 96% accuracy, so errors are minimal these days.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I spend a lot of time looking at AI applications in regulated industries, and most of them die in the gap between the demo and the compliance review. Starting from compliance and working toward the delight is the harder order to do it in, and the one that survives.<\/p>\n<p>Congrats to the team. Rooting for this one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jesus_charinga_gutierrez\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jesus_charinga_gutierrez<\/a>&nbsp;<br \/>Thanks. That gap is real, and the reason the order matters is that compliance can&#8217;t be retrofitted. You can add polish to a compliant product. You can&#8217;t add a BAA to a data path that was built without one.<\/p>\n<p>The question that kills those demos is never about the model. It&#8217;s where the data sits and who signs for it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Innovative angle on the medical notetaking!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@francesco_domizio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@francesco_domizio<\/a>&nbsp;<\/p>\n<p>So, ultimately, the goal is to bring more &#8220;traditional&#8221; technology to a highly regulated market.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/LSQNKPD3PHT2KG\" class=\"app-title\">MemoryCustodian<\/a><\/p>\n<div class=\"one-liner\">Repo-native memory for coding agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">155<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>MemoryCustodian \u662f\u4e00\u6b3e\u5c06\u7f16\u7a0b\u667a\u80fd\u4f53\u7684\u9879\u76ee\u8bb0\u5fc6\u4ee5\u7eaf Markdown \u6587\u4ef6\u5b58\u50a8\u5728\u4ee3\u7801\u4ed3\u5e93\u4e2d\u7684\u5f00\u6e90\u5de5\u5177\uff0c\u8ba9\u51b3\u7b56\u3001\u7ea6\u675f\u548c\u5df2\u5426\u51b3\u65b9\u6848\u50cf\u4ee3\u7801\u4e00\u6837\u53ef\u5ba1\u67e5\u3001\u53ef\u7248\u672c\u63a7\u5236\u3001\u53ef\u9009\u62e9\u6027\u52a0\u8f7d\uff0c\u89e3\u51b3 AI \u7f16\u7a0b\u65f6\u201c\u5fd8\u8bb0\u524d\u60c5\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/85121f0c-26d1-4087-877f-7556a0b9e070.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/633f047a-236a-4bf9-a332-53b879dd23db.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/84b61256-700c-4174-8dfd-336c94b50726.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e9957d27-1e20-4ceb-bd37-9f099eb4365a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8f8eb7c2-815d-48ec-9a55-1b521fe94ab8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/c35219f4-c613-4023-a0e0-0cf6d81ea205.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/ujn1ALilIm4\"><source src=\"https:\/\/youtu.be\/ujn1ALilIm4\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u201c\u4ed3\u5e93\u539f\u751f\u201d\u601d\u8def\uff0c\u8ba4\u4e3a\u8bb0\u5fc6\u53ef\u5ba1\u67e5\u3001\u53ef\u7248\u672c\u63a7\u5236\u662f\u6838\u5fc3\u4ef7\u503c\u3002\u4f46\u63d0\u51fa\u4e86\u591a\u4e2a\u75db\u70b9\uff1amanifest \u5224\u65ad\u76f8\u5173\u6027\u7684\u51c6\u786e\u6027\u4e0e\u53ef\u8ffd\u6eaf\u6027\u4e0d\u8db3\uff1b\u591a\u4ee3\u7406\u3001\u591a\u4ed3\u5e93\u573a\u666f\u4e0b\u8bb0\u5fc6\u5171\u4eab\u4e0e\u51b2\u7a81\u68c0\u6d4b\u673a\u5236\u7f3a\u5931\uff1b\u8bb0\u5fc6\u5199\u5165\u4e0e\u9057\u5fd8\u7f3a\u4e4f\u5ba1\u6838\u6b65\u9aa4\uff0c\u5bb9\u6613\u79ef\u7d2f\u566a\u58f0\u6216\u654f\u611f\u4fe1\u606f\uff1b\u5206\u652f\u5408\u5e76\u65f6\u77db\u76fe\u6761\u76ee\u65e0\u6cd5\u81ea\u52a8\u68c0\u6d4b\uff0c\u7ed9\u540e\u671f\u7ef4\u62a4\u57cb\u96f7\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                MemoryCustodian \u5207\u4e2d\u4e86\u4e00\u4e2a\u771f\u5b9e\u4f46\u88ab\u5ffd\u89c6\u7684\u6218\u573a\uff1aAI \u7f16\u7a0b\u667a\u80fd\u4f53\u7684\u201c\u4f1a\u8bdd\u7ea7\u5931\u5fc6\u201d\u3002\u5b83\u6ca1\u6709\u9009\u62e9\u505a\u53e6\u4e00\u4e2a\u95ed\u6e90\u8bb0\u5fc6\u4e2d\u95f4\u4ef6\uff0c\u800c\u662f\u628a\u624b\u4f38\u8fdb\u5f00\u53d1\u8005\u6700\u719f\u6089\u7684\u5de5\u4f5c\u6d41\u2014\u2014\u4ee3\u7801\u4ed3\u5e93\uff0c\u7528 Markdown \u6587\u4ef6\u505a\u8bb0\u5fc6\u8f7d\u4f53\uff0c\u7528 Git \u505a\u7248\u672c\u63a7\u5236\uff0c\u7528 Manifest \u505a\u4e0a\u4e0b\u6587\u88c1\u526a\uff0c\u8fd9\u5957\u7ec4\u5408\u62f3\u5728\u7406\u5ff5\u4e0a\u51e0\u4e4e\u65e0\u53ef\u6311\u5254\uff1a\u5f00\u653e\u3001\u53ef\u5ba1\u8ba1\u3001\u96f6\u4fe1\u4efb\u4f9d\u8d56\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u7406\u5ff5\u7684\u4f18\u96c5\u4e0d\u80fd\u63a9\u76d6\u6838\u5fc3\u673a\u5236\u7684\u7c97\u7cd9\u3002\u201c\u9009\u62e9\u6027\u52a0\u8f7d\u201d\u8fd9\u4e2a\u8bcd\u542c\u7740\u5f88\u7f8e\uff0c\u4f46\u5f53\u524d\u5b9e\u73b0\u53ea\u662f\u9760\u56fa\u5b9a\u7684\u4efb\u52a1\u5206\u7c7b\u53bb\u6620\u5c04\u56fa\u5b9a\u7684\u6587\u4ef6\u96c6\u5408\uff0c\u65e2\u6ca1\u6709\u8bed\u4e49\u68c0\u7d22\uff0c\u4e5f\u6ca1\u6709\u76f8\u5173\u6027\u8bc4\u5206\u4ee3\u7406\u53bb\u5224\u65ad\u67d0\u4e2a\u7ea6\u675f\u662f\u5426\u771f\u7684\u9002\u7528\u4e8e\u5f53\u524d\u4efb\u52a1\u3002\u66f4\u5371\u9669\u7684\u662f\uff0c\u5f53\u5206\u652f\u5408\u5e76\u65f6\uff0c\u4e24\u4e2a\u4ee3\u7406\u5199\u5165\u7684\u77db\u76fe\u6761\u76ee\u2014\u2014\u6bd4\u5982\u201c\u7981\u7528\u5e93 X\u201d\u548c\u201c\u5fc5\u987b\u7528\u5e93 X\u201d\u2014\u2014\u4f1a\u88ab Git \u9759\u9ed8\u5408\u5e76\uff0c\u800c\u7cfb\u7edf\u6ca1\u6709\u4efb\u4f55\u51b2\u7a81\u68c0\u6d4b\u3002\u8fd9\u610f\u5473\u7740\uff0c\u4e00\u4e2a\u4ee3\u7801\u5ba1\u67e5\u4e0d\u4e25\u683c\u7684\u56e2\u961f\uff0c\u5f88\u5bb9\u6613\u5728\u4e0d\u77e5\u4e0d\u89c9\u4e2d\u6784\u5efa\u51fa\u4e00\u4e2a\u81ea\u76f8\u77db\u76fe\u7684\u201c\u8bb0\u5fc6\u6587\u6863\u5e93\u201d\uff0c\u53cd\u800c\u8ba9\u667a\u80fd\u4f53\u5728\u9519\u8bef\u7684\u524d\u63d0\u4e0a\u52a0\u901f\u72af\u9519\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u6587\u4ef6\u5373\u8bb0\u5fc6\u7684\u6a21\u5f0f\u5728\u5355\u4ed3\u5e93\u573a\u666f\u4e0b\u81ea\u6d3d\uff0c\u4f46\u9762\u5bf9\u591a\u4ed3\u5e93\u6216\u5fae\u670d\u52a1\u67b6\u6784\u65f6\u7acb\u523b\u5c34\u5c2c\uff1a\u57fa\u7840\u8bbe\u65bd\u5e93\u5199\u7684\u7ea6\u675f\uff0c\u5e94\u7528\u4ed3\u5e93\u7684\u4ee3\u7406\u6839\u672c\u770b\u4e0d\u5230\u3002\u4f5c\u8005\u63d0\u51fa\u201c\u5de5\u4f5c\u533a\u5c42\u201d\u7684\u60f3\u6cd5\u662f\u5bf9\u7684\uff0c\u4f46\u76ee\u524d\u53ea\u662f\u53ef\u9009\u9879\uff0c\u9879\u76ee\u5982\u679c\u771f\u60f3\u843d\u5730\u5230\u590d\u6742\u771f\u5b9e\u5de5\u7a0b\uff0c\u8fd9\u5c42\u62bd\u8c61\u5fc5\u987b\u5c3d\u65e9\u539f\u751f\u652f\u6301\u3002\n            <\/p>\n<p class=\"ai-content\">\n                MemoryCustodian \u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u8ba9 AI \u8bb0\u4f4f\u4e1c\u897f\u201d\uff0c\u800c\u5728\u4e8e\u628a\u201c\u8bb0\u4f4f\u4ec0\u4e48\u3001\u4e3a\u4ec0\u4e48\u8bb0\u4f4f\u3001\u4f55\u65f6\u8be5\u5fd8\u201d\u8fd9\u4e2a\u51b3\u7b56\u6743\u4ea4\u8fd8\u7ed9\u5f00\u53d1\u8005\uff0c\u5e76\u7528 Git \u90a3\u6837\u6210\u719f\u7684\u5de5\u5177\u94fe\u6765\u627f\u8f7d\u8fd9\u4efd\u8d23\u4efb\u3002\u4f46\u5728\u5b83\u8865\u4e0a\u8bed\u4e49\u51b2\u7a81\u68c0\u6d4b\u3001\u4efb\u52a1-\u8bb0\u5fc6\u76f8\u5173\u6027\u8ffd\u8e2a\u3001\u4ee5\u53ca\u591a\u4ed3\u5e93\u8bb0\u5fc6\u5171\u4eab\u4e4b\u524d\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u4f18\u96c5\u7684\u5b9e\u9a8c\u6846\u67b6\uff0c\u800c\u975e\u53ef\u4ee5\u76f4\u63a5\u4fe1\u8d56\u7684\u751f\u4ea7\u5de5\u5177\u3002\u540e\u8005\u9700\u8981\u7684\u4e0d\u4ec5\u662f\u7406\u5ff5\u6b63\u786e\uff0c\u66f4\u662f\u5bf9\u590d\u6742\u6027\u7684\u786c\u6838\u7ba1\u7406\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">MemoryCustodian<\/span>\n                <\/div>\n<div class=\"comment-content\">MemoryCustodian gives Codex, Claude Code, Gemini, and other coding agents durable project memory\u2014without a hosted service or bloating every prompt. Decisions, constraints, rejected approaches, and project context live as plain Markdown in your repo, where they can be reviewed, versioned, shared, and deleted like code. A manifest loads only the memory relevant to each task. Open source, local-first, and cross-agent.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I built MemoryCustodian because coding agents are increasingly capable, but every new session still tends to forget why a project looks the way it does.<\/p>\n<p>Important decisions, constraints, rejected approaches, and repeated corrections often live only in old conversations\u2014or get copied into increasingly large instruction files.<\/p>\n<\/p>\n<p>MemoryCustodian takes a different approach: durable project memory lives as plain Markdown inside the repository.<\/p>\n<p>A small manifest tells the agent which memory files are relevant to the current task, so the memory can grow without forcing every session to load the entire project history.<\/p>\n<\/p>\n<p>What makes it different:<\/p>\n<ul>\n<li>\n<p>Repo-native and plain text\u2014no opaque memory database<\/p>\n<\/li>\n<li>\n<p>Reviewable, versioned, and shareable through normal Git workflows<\/p>\n<\/li>\n<li>\n<p>Selective loading instead of injecting all memory into every prompt<\/p>\n<\/li>\n<li>\n<p>Explicit support for updating, correcting, and safely forgetting memory<\/p>\n<\/li>\n<li>\n<p>Works with Codex, Claude Code, Gemini, and generic coding-agent workflows<\/p>\n<\/li>\n<li>\n<p>Free, open source, and local-first<\/p>\n<\/li>\n<\/ul>\n<p>The repository also includes a reproducible NightNotes demo showing a new agent session recovering an existing architectural decision and avoiding an already-rejected implementation path.<\/p>\n<p>I\u2019d especially love feedback on the memory structure, cross-agent workflow, and whether the installation experience feels simple enough for real projects.<\/p>\n<\/p>\n<p>Thanks for checking it out!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@waittim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@waittim<\/a>&nbsp;This is the piece most memory tools skip. Keeping decisions and rejected approaches as plain markdown in the repo means that knowledge stays with the project itself, reviewable and versioned like any other code, rather than trapped in someone&#8217;s chat history. The part I&#8217;d want to see stress-tested is the manifest logic, deciding which memory is actually relevant to a given task is a genuinely hard problem once a repo has months of accumulated context. Local-first and cross-agent is exactly the right call here.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@waittim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@waittim<\/a>&nbsp;Congratulations on the launch! \ud83d\ude80<\/p>\n<\/p>\n<p>I really like the idea of treating memory as part of the codebase instead of another hidden layer. Architectural decisions are just as valuable as the code itself, yet they&#8217;re often buried in old chats or forgotten completely.<\/p>\n<\/p>\n<p>The selective loading approach also makes a lot of sense. More context isn&#8217;t always better. The right context at the right time is what actually helps an agent make better decisions.<\/p>\n<p>I&#8217;m curious, after using MemoryCustodian across real projects, what kind of memory has delivered the biggest return? Architecture decisions, coding conventions, rejected approaches, or something completely unexpected? Wishing you a fantastic launch! \ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Repo-native plain Markdown is the right call, I hand-maintain something similar and versioning memory alongside the code is exactly what keeps it from rotting. The part I keep hitting isn&#8217;t retrieval, it&#8217;s write discipline: what actually triggers a new entry? If the agent decides when a decision is &#8220;worth remembering,&#8221; how do you stop <a href=\"https:\/\/constraints.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">constraints.md<\/a> from filling up with conversation-local noise that was never really a durable decision?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Is there a review step before something becomes durable, or does it persist the moment the agent decides it&#8217;s worth keeping?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the repo native approach. How do you handle memory that is stale or contradicts another note? Does the agent get warned before it trusts that context, or does someone have to catch it during review?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@flavio_riper\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@flavio_riper<\/a>&nbsp;Good question. Today, this is partly handled by process rather than a general semantic conflict detector.<\/p>\n<p>The agent is instructed to update, merge, or explicitly supersede an existing entry instead of appending a contradictory one, and memory audits compare durable claims against the current code and authoritative project files.<\/p>\n<p>But the honest answer is that MemoryCustodian cannot yet guarantee a warning before every stale or differently worded contradiction is trusted. Structural issues can be checked deterministically; semantic drift still needs to be caught by the agent or during review. The direction is to make that risk more visible through explicit supersession, provenance, freshness, and conflict auditing\u2014not to assume that the newest note automatically wins.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the deleted like code phrasing is doing more work than it looks. deleting a memory file takes it out of the working tree, but if it was ever committed it stays in history, in every clone, and in every fork. so forgetting is reversible for anyone holding the repo.<\/p>\n<p>matters because rejected-approach notes are exactly where the sensitive material collects. we cannot use X because of the contract with Y, or this is throttled because vendor Z caps us at N. fine in a private repo among employees, less fine once a contractor clones it or the project goes open source.<\/p>\n<p>not an argument against repo-native, I still think the tradeoff lands your way. just that safe forgetting probably wants a line in the docs about what it does and does not cover&#8230;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alex_watson2110\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_watson2110<\/a>&nbsp;That\u2019s an important distinction, and you\u2019re right.<\/p>\n<p>Today, <strong><em>hard<\/em><\/strong> forget and purge remove content from the managed memory files\u2014and <strong><em>purge<\/em><\/strong> also covers the memory archive, but they do not rewrite Git history or revoke copies already present in clones, forks, or backups.<\/p>\n<p>So \u201cforgetting\u201d should be understood as preventing content from remaining in, or returning to, active agent memory, not guaranteed erasure from every copy of the repository.<\/p>\n<p>We should make that boundary explicit in the docs, along with stronger guidance not to store raw secrets, contract details, or sensitive vendor information in repo memory in the first place. Thanks for calling this out.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch. Recording rejected approaches is the part most memory systems skip entirely, and it might be the highest value item on your list, because without it an agent will cheerfully re-propose the thing you already ruled out last month.<\/p>\n<p>The manifest is the interesting design call. How do you handle relevance drifting, where a file was genuinely relevant when written but is not for the task at hand, and the agent cannot tell the difference until it has already loaded it?<\/p>\n<p>Plain Markdown in the repo is the right default either way, since it means a human can actually audit what the agent believes about the project.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@paul_crinigan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paul_crinigan<\/a>&nbsp;Thank you! and agreed on rejected approaches. Preventing an agent from rediscovering the same dead end is one of the main reasons this exists.<\/p>\n<p>The manifest handles routing relevance, not whether every entry inside a routed file is still current. Today, keeping files short and scoping subsystem knowledge into separate area files makes drift easier to notice, but it does not eliminate it.<\/p>\n<p>The direction in the plan is to make that drift visible through explicit supersession, evidence freshness checks, and explanations of why each module was loaded or skipped, not to silently assume that newer memory is correct.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Repo-native is the right call, and the branch question above is the obvious follow-up \u2014 so I&#8217;ll ask the one underneath it. What happens when the project isn&#8217;t one repo?<\/p>\n<\/p>\n<p>Mine is three: the app, the infrastructure, and the marketing site. The decisions that bite me are almost always made in one and violated in another \u2014 a constraint I set while working on infra that the agent working in the app repo has never seen. Repo-native is exactly right for &#8220;why is this code shaped this way.&#8221; It also makes the repo the trust boundary, and my project boundary is wider than that.<\/p>\n<\/p>\n<p>Is sharing a memory module across repos something you&#8217;d support \u2014 a submodule, a symlink, a shared manifest entry \u2014 or is one-repo-one-memory a deliberate scope call?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rickwise\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rickwise<\/a>&nbsp;That\u2019s a real boundary in the current release. Today, one initialized repository has one shared memory root, so the app repo will not automatically see a constraint recorded in the infrastructure repo.<\/p>\n<p>I don\u2019t think one-repo-one-memory should be a permanent product boundary. The cleaner extension would be an explicit workspace layer: each repository keeps its repo-specific memory, while several repositories can opt into a separate, versioned workspace memory root for decisions and constraints that apply across the whole project.<\/p>\n<p>Both layers would need explicit identity, precedence, revision, and conflict behavior. I would avoid treating raw symlinks as the protocol; a dedicated repository or submodule could be one way to distribute workspace memory, but the relationship should remain visible and auditable.<\/p>\n<p>So today it is one shared memory root per repo by design, but multi-repo project memory is a valid layer above that model.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Plain Markdown in the repo means agent memory goes through code review like everything else, which is the whole reason teams will adopt it. I run two developer-facing products and the pattern repeats, nobody trusts memory they cannot audit. A hosted memory service is one more vendor in the compliance review, a Markdown file ships with the PR. And the manifest that loads only task-relevant memory deserves top billing, context bloat is what kills long-running agents.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@roguetink\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roguetink<\/a>&nbsp;Thank you! This is exactly the tradeoff we were designing around.<\/p>\n<p>Memory should be reviewable like code, not hidden behind another opaque service. And keeping the memory store durable only works if the context loaded for each task stays bounded.<\/p>\n<\/p>\n<p>Really appreciate you calling out both sides of the design!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Different failure mode than the branch\/rebase question above: two agent sessions on separate branches each append a note to constraints.md, no line-level conflict so git merges both cleanly, but the notes contradict each other (one says &#8216;never use library X&#8217;, the other says &#8216;X is now required for Y&#8217;). Nothing breaks at merge time, the file just quietly holds two decisions that can&#8217;t both be true. Is there any detection for that, or does it rely on someone eventually reading the file top to bottom and noticing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Good catch. Today, Git can merge those entries cleanly, and v0.9.1 does not automatically detect that they contradict each other.<\/p>\n<p>Keeping memory files short makes conflicts easier for humans and agents to notice, while timestamps and evidence help explain where each entry came from. But neither is a conflict-resolution rule, and we would not simply let the newest entry win.<\/p>\n<\/p>\n<p>The planned releases add stable entry IDs, explicit supersession, and conflict auditing. Hard-memory entries will also reference a stable canonical subject, scope, and controlled facet. If two active entries claim the same structural identity, <em>check<\/em> or <em>audit<\/em> will fail until one supersedes the other or an explicit scoped exception is recorded.<\/p>\n<p>That still is not general semantic contradiction detection. If two branches describe the same underlying issue using different structural identities, a merge-aware audit will flag the concurrent hard-memory changes for reconciliation rather than silently treating the merge as safe.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Memory is key for agents! Glad to see you helping on this Zekun! Wish you all the best<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Thank you so much! Really appreciate the support. It means a lot.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Repo-native is the right instinct \u2014 memory that lives outside the repo drifts away from the code it describes almost immediately, and then you&#8217;re maintaining two sources of truth about the same system.<\/p>\n<p>The question that follows is what happens on a branch. If memory is committed alongside code, then a note written on a feature branch is invisible on main until merge, which is arguably correct but might surprise people. And a rebase or a squash would rewrite the memory&#8217;s history along with everything else. Is memory versioned with the code by design, or does it sit in the repo but outside normal git flow?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;Yes, shared project memory is versioned with the code by design.<\/p>\n<p>A memory change on a feature branch stays on that branch until merge, which keeps branch-specific decisions from affecting main too early. Rebases and squash merges rewrite memory history along with code history, while the final memory state remains visible in the diff.<\/p>\n<p>Only personal preferences and machine-specific context sit outside Git. Shared decisions, constraints, and rejected approaches stay in the repo.<\/p>\n<p>So there is no separate hidden shared-memory timeline.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Plain Markdown in the repo instead of a hosted service is the right call for me. My worry is upkeep, and I saw you support correcting and forgetting memory, so the tooling is there. It is the habit I am unsure about. The file is only worth anything as long as someone keeps it honest, and when you work alone that someone is you. Not a criticism of the approach, I think the approach is sound. Nice launch!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;Thank you! I think that is the real tradeoff.<\/p>\n<p>Plain Markdown makes memory inspectable, but it does not make maintenance disappear. The intended habit is event-driven rather than periodic: after a meaningful decision, repeated correction, or rejected approach, the agent should propose a small memory update while the context is still fresh.<\/p>\n<p>A solo maintainer is still the final curator. I would rather keep that responsibility visible and reviewable than hide it behind an automatic memory system that quietly accumulates incorrect beliefs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;manifest loads only the memory relevant to each task&#8221; line is the part I&#8217;d poke at. relevance selection is its own hard problem &#8211; if it&#8217;s simple keyword or path matching against the task description that&#8217;s predictable, but if the agent itself is judging which memory files matter for the current task, you can end up with the same failure mode you&#8217;re trying to avoid: it just won&#8217;t load the one constraint file it doesn&#8217;t realize is relevant, and you get no error, just quietly wrong behavior. how does the manifest decide relevance today, and is there any way to see what got left out for a given task<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;<br \/>That\u2019s a fair concern. Today, the manifest is not doing semantic retrieval, keyword search, or relevance scoring.<\/p>\n<p>The agent first classifies the task into a small category such as planning, implementation, artifact work, or maintenance. The manifest then deterministically maps that category to a fixed set of files. For example, planning and implementation load <em>decisions.md<\/em>, <em>constraints.md<\/em>, and <em>do-not-use.md<\/em> by default, so the agent does not judge individual constraints one by one.<\/p>\n<p>There is still an agent-judgment boundary for selecting the task category and matching optional <em>rules\/<\/em>, <em>profiles\/<\/em>, or <em>areas\/<\/em>. A wrong classification can therefore omit scoped memory, and we consider that a real limitation.<\/p>\n<\/p>\n<p>You can inspect the selected context with:<\/p>\n<pre><code>memory-custodian read --task implementation --names-only<\/code><\/pre>\n<\/p>\n<p>It shows what was loaded, while the full output also reports missing files and entries omitted by context budgets. What v0.9.1 does not yet provide is a complete trace listing every excluded module and why.<\/p>\n<p>A more precise description would be: <strong>the manifest routes a bounded context pack through explicit, project-defined task categories<\/strong>.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XYVSXCXMI3M4QN\" class=\"app-title\">Totem<\/a><\/p>\n<div class=\"one-liner\">Your Twitter bookmarks organized to make you read them<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">142<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Totem\u662f\u4e00\u6b3eChrome\u6269\u5c55\uff0c\u5c06X\uff08Twitter\uff09\u4e66\u7b7e\u7ebf\u7a0b\u8f6c\u5316\u4e3a\u65e0\u5e72\u6270\u7684\u9605\u8bfb\u73af\u5883\uff0c\u89e3\u51b3\u7528\u6237\u201c\u53ea\u6536\u85cf\u4e0d\u9605\u8bfb\u201d\u7684\u75db\u70b9\uff0c\u8ba9\u4f60\u5728\u65b0\u6807\u7b7e\u9875\u50cf\u9605\u8bfbSubstack\u6587\u7ae0\u4e00\u6837\u6c89\u6d78\u5f0f\u5904\u7406\u6536\u85cf\u5185\u5bb9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/441b7702-09e3-41c9-9b29-2a4a46324a49.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ee2421dd-7612-4b71-846f-c6ae226d7655.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/12a44363-b4ea-4861-9a61-4f97a402e347.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/83691f4c-7a94-40ab-8491-d5480b39cc7e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5323d9d3-0add-47bf-a6a8-aae8d97a09a4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Chrome Extensions<\/span><br \/>\n            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Twitter<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Twitter\u4e66\u7b7e\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Chrome\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u9605\u8bfb\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e0\u5e72\u6270\u9605\u8bfb<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u4eae\u6279\u6ce8<\/span><br \/>\n            <span class=\"tag\">\u5168\u6587\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">Obsidian\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u65b0\u6807\u7b7e\u9875<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u53cd\u9988X\u4e66\u7b7e\u662f\u201c\u5893\u5730\u201d\uff0c\u9605\u8bfb\u7387\u6781\u4f4e\u3002\u5173\u952e\u95ee\u9898\u5305\u62ec\uff1a\u5982\u4f55\u4f18\u5148\u5c55\u793a\u5f85\u8bfb\u5185\u5bb9\uff08\u56de\u590d\u79f0\u6309\u8fd1\u671f\u6536\u85cf\u3001\u5df2\u8bfb\u72b6\u6001\u6253\u5206\u5f62\u6210\u6bcf\u65e55\u6761\u961f\u5217\uff09\uff1b\u662f\u5426\u652f\u6301\u641c\u7d22\u548c\u603b\u7ed3\uff08\u652f\u6301\u641c\u7d22\uff0c\u4e0d\u652f\u6301\u603b\u7ed3\uff09\uff1b\u5bfc\u51fa\u529f\u80fd\u662f\u5426\u5305\u542b\u5f15\u7528\u63a8\u6587\u548c\u4e0a\u4e0b\u6587\uff08\u652f\u6301\u4e00\u7ea7\u5f15\u7528\uff09\uff1b\u957f\u671f\u7ef4\u62a4\u7a33\u5b9a\u6027\uff08\u56de\u590d\u79f0\u901a\u8fc7\u590d\u7528X\u5185\u90e8GraphQL\u63a5\u53e3\uff0c\u975eDOM\u6293\u53d6\u6216\u4ed8\u8d39API\uff0c\u901a\u8fc7\u52a8\u6001\u53d1\u73b0\u67e5\u8be2ID\u4fdd\u6301\u7a33\u5b9a\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Totem\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u6781\u5177\u666e\u904d\u6027\u5374\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u201c\u6570\u5b57\u56e4\u79ef\u201d\u573a\u666f\u2014\u2014\u5728X\u4e0a\uff0c\u6536\u85cf\u884c\u4e3a\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u6d88\u8d39\u5e7b\u89c9\uff0c\u800c\u771f\u6b63\u7684\u9605\u8bfb\u4ece\u672a\u53d1\u751f\u3002\u4ea7\u54c1\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u7ba1\u7406\u4e66\u7b7e\u201d\uff0c\u800c\u5728\u4e8e\u7528\u201c\u65b0\u6807\u7b7e\u9875\u201d\u8fd9\u4e2a\u6d4f\u89c8\u5668\u6700\u9ad8\u9891\u7684\u7a7a\u767d\u65f6\u523b\uff0c\u6784\u5efa\u4e00\u4e2a\u4ece\u6536\u85cf\u5230\u9605\u8bfb\u7684\u95ed\u73af\uff0c\u8fd9\u6b63\u662f\u4fe1\u606f\u6d88\u8d39\u4e60\u60ef\u4e2d\u7f3a\u5931\u7684\u5173\u952e\u4e00\u73af\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u5b9e\u73b0\u770b\uff0c\u56e2\u961f\u9009\u62e9\u7ed5\u8fc7X\u5b98\u65b9API\uff08\u6602\u8d35\u4e14\u4e0d\u7a33\u5b9a\uff09\u548cDOM\u6293\u53d6\uff08\u6613\u788e\uff09\uff0c\u901a\u8fc7Chrome\u6269\u5c55\u590d\u7528X\u5185\u90e8GraphQL\u7aef\u70b9\u6765\u83b7\u53d6\u4e66\u7b7e\u6570\u636e\uff0c\u5e76\u52a8\u6001\u9002\u914d\u67e5\u8be2ID\u53d8\u5316\uff0c\u8fd9\u4e00\u601d\u8def\u52a1\u5b9e\u4e14\u806a\u660e\uff0c\u6781\u5927\u964d\u4f4e\u4e86\u7ef4\u62a4\u6210\u672c\uff0c\u4e3a\u957f\u671f\u53ef\u7528\u6027\u63d0\u4f9b\u4e86\u53ef\u9760\u57fa\u7840\u3002\u4ea7\u54c1\u4ee5\u201c\u9605\u8bfb\u4f53\u9a8c\u201d\u800c\u975e\u201c\u7ba1\u7406\u6548\u7387\u201d\u4e3a\u8bbe\u8ba1\u6838\u5fc3\uff0c\u5168\u5bbd\u6392\u7248\u3001\u6807\u6ce8\u3001\u5bfc\u51fa\u5230Obsidian\/ Markdown\uff0c\u5b9e\u9645\u4e0a\u662f\u5c06X\u788e\u7247\u5316\u5185\u5bb9\u77e5\u8bc6\u5316\u4e3a\u771f\u6b63\u53ef\u590d\u7528\u7684\u7b14\u8bb0\u8d44\u4ea7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u5f53\u524d\u529f\u80fd\u8fb9\u754c\u6e05\u6670\u4f46\u4e5f\u663e\u5355\u8584\uff1a\u6bcf\u65e5\u63a8\u8350\u961f\u5217\u4ec5\u4f9d\u8d56\u65f6\u95f4\u4e0e\u884c\u4e3a\u6743\u91cd\uff0c\u7f3a\u4e4f\u8bed\u4e49\u7406\u89e3\u6216\u8bfb\u8005\u610f\u56fe\u5efa\u6a21\uff1b\u53ea\u652f\u6301X\u5355\u4e00\u5e73\u53f0\uff0c\u5bf9\u4e8e\u4e60\u60ef\u591a\u5e73\u53f0\u6536\u85cf\u7684\u7528\u6237\uff0c\u5de5\u5177\u4ef7\u503c\u4f1a\u88ab\u5207\u5272\u3002\u66f4\u503c\u5f97\u601d\u8003\u7684\u662f\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u662f\u5426\u4f1a\u9677\u5165\u201c\u5de5\u5177\u8d8a\u597d\uff0c\u6536\u85cf\u8d8a\u591a\uff0c\u6536\u85cf\u8d8a\u591a\u5374\u8d8a\u4e0d\u8bfb\u201d\u7684\u6096\u8bba\uff1f\u771f\u6b63\u7684\u6311\u6218\u5728\u4e8e\uff0c\u5982\u4f55\u4ece\u63d0\u5347\u9605\u8bfb\u6548\u7387\u8f6c\u5411\u6539\u53d8\u7528\u6237\u7684\u6536\u85cf\u884c\u4e3a\u672c\u8eab\u2014\u2014\u6216\u8bb8\u201c\u4eca\u65e5\u672a\u8bfb\u201d\u529f\u80fd\u662f\u7b2c\u4e00\u6b65\uff0c\u4f46\u8fdc\u4e0d\u591f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cTotem\u662f\u4e00\u4e2a\u514b\u5236\u3001\u6267\u884c\u5230\u4f4d\u4e14\u75db\u70b9\u660e\u786e\u7684\u4f18\u79c0\u4ea7\u54c1\uff0c\u89e3\u51b3\u4e86X\u4e66\u7b7e\u9605\u8bfb\u7387\u63a5\u8fd1\u96f6\u7684\u7a98\u5883\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u9605\u8bfb\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u9605\u8bfb\u4e60\u60ef\u6539\u53d8\u5668\u201d\uff0c\u5c06\u662f\u5b83\u4ece142\u7968\u8d70\u5411\u66f4\u5927\u5f71\u54cd\u529b\u7684\u5173\u952e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Totem<\/span>\n                <\/div>\n<div class=\"comment-content\">You bookmark great threads on X and never see them again. Totem turns your new tab into a distraction-free environment for those bookmarks, the way you&#8217;d read on Substack. Open a thread full-width, highlight what matters, search everything, export etc.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi everyone! I&#8217;m Ankit  \ud83d\udc4b<\/p>\n<p>I have a bad habit: I bookmark brilliant threads on X telling myself I&#8217;ll &#8220;read it later.&#8221; Later never comes. The bookmarks page is a graveyard, no order, no search, no way to actually read anything longer than a glance.<\/p>\n<p>I kept wishing my bookmarks looked like a Substack post. Full width. Clean type. No infinite feed pulling my attention away. Just me and the thing I wanted to read.<\/p>\n<p>So I built Totem.<\/p>\n<p>It turns your new tab into a quiet reading room for your X bookmarks:<br \/>\n  &#8211; \ud83d\udcd6 Read, don&#8217;t scroll \u2014 threads unroll into a clean, full-width article<br \/>\n  &#8211; \u270d\ufe0f Highlight &amp; annotate \u2014 mark the lines worth keeping, like you would in a book.<br \/>\n  &#8211; \ud83d\udd0d Search everything \u2014 find that one thread by a word you remember<br \/>\n  &#8211; \ud83d\udce4 Export \u2014 send highlights and threads to your notes (Obsidian, Markdown), full and partial bookmark export<br \/>\n  &#8211; \ud83c\udf31 A calm browser new tab &#8211; new tab becomes an invitation to read something you already chose, instead of doomscrolling.<\/p>\n<p>The whole idea: the things you saved should be easy and pleasant to actually read.<\/p>\n<p>It&#8217;s a free Chrome extension. I&#8217;d love your honest feedback, especially on the reading experience. What would make you actually return to your bookmarks?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Every one is solving for bookmarks for links, but this seems like first whole-hearted attempt to fix twitter bookmarks once and for all. Speciality softwares like this actually work. I am installing it right away. Thanks for shipping this <a href=\"https:\/\/www.producthunt.com\/@iankit17\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"iankit17\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iankit17<\/a> \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@priyanshunayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priyanshunayan<\/a>&nbsp;Thanks \ud83d\ude4c <\/p>\n<p><em>You&#8217;ve been one of the earliest to test Totem and your feedback genuinely shaped where it&#8217;s going. Means a lot.<\/em><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I save threads for community management work &#8211; launch announcements, ecosystem updates, AMA threads &#8211; and they get buried the same way you describe. The Obsidian\/Markdown export is the part that would actually change my workflow: I keep running notes on each project and community I track, and a clean thread export I can drop directly into those notes without manual cleanup would save real time during launch season. Does the export include quoted tweets and embedded thread context, or mostly just the main tweet text?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hazy0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hazy0<\/a>&nbsp;Yes, it supports the quoted tweet up to one level. Example of export for one of the quoted tweet below<\/p>\n<\/p>\n<blockquote>\n<p>&#8212;<\/p>\n<p>title: &#8220;1. Don\u2019t take funding&#8221;<\/p>\n<p>source: <a href=\"https:\/\/x.com\/thepatwalls\/status\/2082437405077098908\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/x.com\/thepatwalls\/status\/2082437405077098908<\/a><\/p>\n<p>author: &#8220;[[Pat Walls]]&#8221;<\/p>\n<p>handle: &#8220;@thepatwalls&#8221;<\/p>\n<p>saved: 2024-12-26<\/p>\n<p>exported: &#8220;30\/07\/2026, 08:18:54&#8221;<\/p>\n<p>tags: [totem\/bookmark, twitter\/thepatwalls]<\/p>\n<p>&#8212;<\/p>\n<p># 1. Don\u2019t take funding<\/p>\n<p>1. Don\u2019t take funding<\/p>\n<p>#### 2. Keep your burn so low that quitting is impossible<\/p>\n<p>3. Go really deep on one idea\/thing and try to be top 1% at it<\/p>\n<p>#### \u2014 Quoting @iamdanandrews \u2014<\/p>\n<p>[@thepatwalls](<a href=\"https:\/\/x.com\/thepatwalls\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/x.com\/thepatwalls<\/a>) Please follow this with \u201ca guide to becoming a cockroach by 2030\u201d.<\/p>\n<\/blockquote>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Ankit, does it allow us to search and summarise? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@iamanantgupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iamanantgupta<\/a>&nbsp;Search &#8211; yes, summarise &#8211; no.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c74674a9-d2e4-4e1e-96fe-593823aa6641.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Interesting product. I have gotten into the habit of bookmarking on my browser &#8211; both X posts and other to reads &#8211; and then going through them once a week. Any plans on expanding this beyond X?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@margharitha\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@margharitha<\/a>&nbsp;Thanks, I have thought about it but no plans yet. Want to see what it grows into before thinking about what features to add.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>awesome! my kinda bad habit too&#8230; does it support Obsidian ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@soysebalopez\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soysebalopez<\/a>&nbsp;yes, you can export and add as an vault to Obsidian \ud83e\udee1<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Oh man, my X bookmarks are a landfill. I save threads at 1am then never see them again. Turning new tab into a calm reading page sounds\u2026 doable. Love the highlights + Obsidian export. How\u2019s it handle super long threads or ones with a bunch of media?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;haha I use the work &#8220;graveyard&#8221; for the same reason.<\/p>\n<p>It pulls the whole conversation and stitches it into an article-like structure, so it&#8217;s easy to read top to bottom.<\/p>\n<p>As for media, everything renders inline \u2014 GIFs, video, images all work smoothly. You can play videos and click images to enlarge them. We even support code highlighting.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/563940dd-b4a7-4057-922d-2c69f83648bf.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/61877af3-93f2-4d66-81f5-855360b372b3.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! I&nbsp;bookmark&nbsp;things&nbsp;all&nbsp;the&nbsp;time&nbsp;and&nbsp;almost&nbsp;never&nbsp;go&nbsp;back&nbsp;to&nbsp;read&nbsp;them. How does Totem decide what to resurface first?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alieksia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alieksia<\/a>&nbsp;Thanks! That&#8217;s exactly the problem it&#8217;s built around &#8211; bookmarking is the reward and the reading never happens.<\/p>\n<p>Here&#8217;s what the reading list looks like (screenshot below).<\/p>\n<p>Notice the tabs: Unread 94, Reading 14, Read 1 &#8211; the honest state of anyone&#8217;s bookmarks. Instead of making you stare at 94 unread, the default tab is Today&#8217;s Read, a small daily queue of ~5.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b2b9a979-2f50-41d2-801f-854f0492d1fa.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>Totem picks your daily 5 by dropping what you&#8217;ve read, snoozed, or kept ignoring, then scoring the rest based on<\/p>\n<ul>\n<li>\n<p>things you started reading<\/p>\n<\/li>\n<li>\n<p>saved recently<\/p>\n<\/li>\n<li>\n<p>pinned<\/p>\n<\/li>\n<li>\n<p>flagged<\/p>\n<\/li>\n<li>\n<p>old bookmarks gathering dust<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Bookmarks-you-never-read is one of those problems where the saving is the reward and the reading never happens, so organizing them only helps if it also changes when they surface.<\/p>\n<p>As someone who&#8217;s shipped a Chrome extension, the part I&#8217;d want to know is what happens on X&#8217;s side. Reading bookmarks means either scraping the timeline DOM or going through the API, and both have been moving targets \u2014 the DOM shifts without notice, and the API tier that covers bookmarks isn&#8217;t cheap. Which route did you take, and how often has it broken on you? For an open source project that maintenance cost is the thing that decides whether it&#8217;s still working in a year.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;This is actually the core of how this extension works.<\/p>\n<blockquote>\n<p>either scraping the timeline DOM or going through the API<\/p>\n<\/blockquote>\n<p>Neither, really &#8211; it doesn&#8217;t scrape the DOM and it doesn&#8217;t use the paid API. It calls X&#8217;s internal web GraphQL endpoint (the same Bookmarks request the site itself makes) by reusing your existing login session. Being an extension is what makes this workable.<\/p>\n<p>The one thing that actually moves is the GraphQL query ID, which changes on client bundle deploys. It&#8217;s not hard-coded &#8211; when it changes, the extension discovers the new one (gets the new one from the current JS bundle as a fallback) and retries.<\/p>\n<p>It&#8217;s held up really well &#8211; hasn&#8217;t broken for me at all.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>With this tool I just might actually revisit my bookmarked tweets! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@madebyuriel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madebyuriel<\/a>&nbsp;That was the aim. I wanted to read bookmarked tweets without the distraction of twitter.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/HKCHIY3OYYT4LW\" class=\"app-title\">Bo AI<\/a><\/p>\n<div class=\"one-liner\">An AI personal assistant that lives in your texts \ud83d\udcac<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">138<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Bo AI \u662f\u4e00\u4e2a\u5d4c\u5165 iMessage \u548c\u5b89\u5353\u77ed\u4fe1\u4e2d\u7684AI\u4e2a\u4eba\u52a9\u7406\uff0c\u901a\u8fc7\u7eaf\u6587\u672c\u5bf9\u8bdd\u5e2e\u52a9\u7528\u6237\u7ba1\u7406\u65e5\u7a0b\u3001\u5065\u5eb7\u95ee\u7b54\u548c\u65e5\u5e38\u4e8b\u52a1\uff0c\u89e3\u51b3\u975e\u6280\u672f\u4eba\u7fa4\u4e0d\u613f\u5b89\u88c5\u65b0APP\u5374\u60f3\u4f7f\u7528AI\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/54c26258-29d9-4e3d-b042-5f585d58ac96.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=lYGQ_KO_4yo\"><source src=\"https:\/\/www.youtube.com\/watch?v=lYGQ_KO_4yo\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4b2fa95b-b682-49d1-96cc-978b9d117e27.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Virtual Assistants<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u52a9\u7406<\/span><br \/>\n            <span class=\"tag\">\u77ed\u4fe1\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">iMessage\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u751f\u6d3b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">SMS AI<\/span><br \/>\n            <span class=\"tag\">\u65e0APP\u65b9\u6848<\/span><br \/>\n            <span class=\"tag\">\u65e5\u5e38\u95ee\u7b54<\/span><br \/>\n            <span class=\"tag\">\u975e\u6280\u672f\u7528\u6237<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u70b9\u5305\u62ec\uff1a\u662f\u5426\u4ec5\u652f\u6301iMessage\uff08\u521b\u59cb\u4eba\u56de\u590d\u4e5f\u652f\u6301\u5b89\u5353\u77ed\u4fe1\uff09\uff1b\u62c5\u5fc3AI\u51fa\u9519\u7387\uff1b\u6709\u7528\u6237\u8d28\u7591\u8001\u5e74\u4eba\u7b49\u53d7\u4f17\u96be\u4ee5\u7406\u89e3OAuth\u6388\u6743\u98ce\u9669\uff0c\u521b\u59cb\u4eba\u79f0\u5df2\u5728\u5f15\u5bfc\u6d41\u7a0b\u4e2d\u8bf4\u660e\uff1b\u591a\u6570\u7528\u6237\u5bf9\u5176\u8d34\u8fd1\u65e5\u5e38\u751f\u6d3b\u7684\u8bbe\u8ba1\u8868\u793a\u8ba4\u53ef\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Bo AI\u7684\u201c\u7b2c\u4e00\u6027\u201d\u4ef7\u503c\u4e0d\u5728\u6280\u672f\uff0c\u800c\u5728\u6e20\u9053\u3002\u5b83\u7cbe\u51c6\u6355\u6349\u4e86\u201c6.8\u4ebf\u4eba\u4ece\u672a\u7528\u8fc7AI\u201d\u80cc\u540e\u7684\u771f\u5b9e\u969c\u788d\uff1a\u4e0d\u662fAI\u4e0d\u591f\u5f3a\uff0c\u800c\u662f\u5165\u53e3\u592a\u5206\u6563\u3002\u628aAI\u585e\u8fdb\u77ed\u4fe1\u6846\uff0c\u672c\u8d28\u4e0a\u662f\u505a\u4e86\u4e00\u6b21\u6781\u7b80\u4e3b\u4e49\u7684\u4ea7\u54c1\u51cf\u6cd5\u2014\u2014\u7528\u6237\u4e0d\u9700\u8981\u4e0b\u8f7d\u3001\u6ce8\u518c\u3001\u5b66\u4e60\u65b0\u754c\u9762\uff0c\u53ea\u9700\u50cf\u5f80\u5e38\u4e00\u6837\u53d1\u77ed\u4fe1\u3002\u8fd9\u79cd\u8bbe\u8ba1\u8ba9Bo\u5728\u83b7\u5ba2\u6210\u672c\u548c\u7528\u6237\u6559\u80b2\u6210\u672c\u4e0a\u78be\u538b\u540c\u884c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u4ef7\u503c\u4e0d\u7b49\u4e8e\u5546\u4e1a\u62a4\u57ce\u6cb3\u3002Bo\u76ee\u524d\u7684\u6280\u672f\u58c1\u5792\u6781\u4f4e\u2014\u2014\u4efb\u4f55\u5927\u6a21\u578bAPI\u56e2\u961f\u90fd\u80fd\u5728\u4e24\u5468\u5185\u590d\u523b\u4e00\u4e2a\u201c\u77ed\u4fe1AI\u52a9\u7406\u201d\u3002\u771f\u6b63\u7684\u8003\u9a8c\u5728\u4e8e\uff1a\u4e00\uff0c\u9690\u79c1\u4fe1\u4efb\u3002\u5f53\u7528\u6237\u628a\u65e5\u5386\u3001Gmail\u3001\u5065\u5eb7\u6570\u636e\u6388\u6743\u7ed9\u4e00\u4e2a\u201c\u804a\u5929\u673a\u5668\u4eba\u201d\u65f6\uff0c\u5b83\u5982\u4f55\u5411\u975e\u6280\u672f\u7528\u6237\u89e3\u91ca\u6570\u636e\u6d41\u5411\uff1f\u8bc4\u8bba\u4e2d\u90a3\u4f4d\u7528\u6237\u6307\u51fa\u7684OAuth\u8ba4\u77e5\u9e3f\u6c9f\uff0c\u5927\u6982\u7387\u4f1a\u5728\u540e\u7eed\u7206\u53d1\u4fe1\u4efb\u5371\u673a\u3002\u4e8c\uff0c\u573a\u666f\u8fb9\u754c\u3002\u201c\u751f\u6d3b\u52a9\u7406\u201d\u662f\u4e00\u4e2a\u8fc7\u5bbd\u7684\u5b9a\u4f4d\uff0c\u7528\u6237\u6d4b\u8bd5\u4e2d\u53ef\u80fd\u65e2\u5f53\u95f9\u949f\u53c8\u5f53\u533b\u7597\u987e\u95ee\uff0c\u5bfc\u81f4\u671f\u671b\u9519\u4f4d\u3002\u4e09\uff0c\u5e73\u53f0\u4f9d\u9644\u6027\u3002\u6b7b\u6b7b\u7ed1\u5b9aiMessage\u548c\u77ed\u4fe1\u610f\u5473\u7740\u7528\u6237\u83b7\u53d6\u53d7\u9650\u4e8e\u82f9\u679c\u4e0e\u8fd0\u8425\u5546\u751f\u6001\uff0c\u4e14\u65e0\u6cd5\u4eab\u53d7\u66f4\u597d\u7684\u4ea4\u4e92\u4f53\u9a8c\uff08\u5982\u5bcc\u5a92\u4f53\u3001\u4e0a\u4e0b\u6587\u8bb0\u5fc6\uff09\uff0c\u8fd9\u53cd\u8fc7\u6765\u9650\u5236\u4e86AI\u80fd\u529b\u7684\u4e0a\u9650\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Bo\u662f\u4e00\u4e2a\u4f18\u96c5\u7684\u201cAI\u5165\u6237\u7b2c\u4e00\u7ad9\u201d\uff0c\u4f46\u82e5\u957f\u671f\u505c\u7559\u5728\u4e00\u5c42\u201c\u6587\u672c\u4e07\u80fd\u63a5\u53e3\u201d\u7684\u8584\u58f3\u4e0a\uff0c\u5f88\u5feb\u4f1a\u88ab\u5fae\u4fe1\u3001WhatsApp\u7b49\u8d85\u7ea7\u5e94\u7528\u5185\u7f6e\u7684AI\u52a9\u624b\u53d6\u4ee3\u3002\u771f\u6b63\u7684\u673a\u4f1a\u5728\u4e8e\uff0c\u5229\u7528\u77ed\u4fe1\u8fd9\u4e00\u8d85\u9ad8\u89e6\u8fbe\u7387\u7684\u5165\u53e3\uff0c\u53cd\u5411\u6536\u96c6\u7528\u6237\u771f\u5b9e\u7684\u751f\u6d3b\u9ad8\u9891\u9700\u6c42\uff0c\u518d\u9010\u6b65\u957f\u51fa\u5782\u76f4\u529f\u80fd\uff08\u6bd4\u5982\u6162\u6027\u75c5\u7ba1\u7406\u3001\u5bb6\u5ead\u65e5\u7a0b\u534f\u540c\uff09\u3002\u5426\u5219\uff0c\u5b83\u6700\u7ec8\u53ea\u662f\u201c\u4e00\u4e2a\u5f88\u9177\u7684\u6f14\u793a\u7248\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Bo AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Bo is the first consumer AI product that exists to serve everyday people. Bo helps you stay organized, save time, live healthier, and answer your questions\u2014all via text.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b Brandon here, Founder of Bo Labs.<\/p>\n<p>I used to be an NBA Trainer, then I spent the last 6 years grinding in tech. <\/p>\n<p>And like many of you, there were times where I sacrificed my health for business. <\/p>\n<p>I got away with it for a long time, until last year when my body broke down on me. <\/p>\n<p>It was the hardest year of my life, filled with countless doctor visits and physical therapy sessions. <\/p>\n<p>Once I got better I was driven to build a tool I know could help millions.<\/p>\n<p>We\u2019re excited to introduce Bo Labs.<\/p>\n<p>Our mission is to build AI products that help everyday people.<\/p>\n<p>~6.8B have still never used AI.<\/p>\n<p>We believe this is because of the form factor it takes.<\/p>\n<p>That\u2019s why we\u2019re bringing AI to iMessage.<\/p>\n<p>Today, we&#8217;re excited to announce our first product.<\/p>\n<p>Introducing Bo AI: Your AI Personal Assistant.<\/p>\n<p>Bo makes your life easier. Helping you stay organized, save time, live healthier, and answer your questions\u2014all via text.<\/p>\n<p>These are just a few kinds of people using Bo today:<\/p>\n<p>Students, hospital staff, active military, athletes, teachers, entrepreneurs, creators, elderly, busy parents, and more.<\/p>\n<p>Amazing tech exists, but it\u2019s still wildly inconvenient to use.<\/p>\n<p>The average person has 50+ apps on their phone.<\/p>\n<p>Most of which are never used.<\/p>\n<p>Everyday people deserve access to AI in a way that meets them where they already are, and improves of their quality of life.<\/p>\n<p>We welcome you to join us.<\/p>\n<p>Special for the PH Community: use code HUNT20 with your Free Trial \u2192 getbo.com<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@turp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@turp<\/a>&nbsp;Really like that Bo is designed around everyday life instead of a single niche use case. Combining organization, health support, and quick answers through a simple text-based experience could make it an AI assistant people actually use every day. Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@turp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@turp<\/a>&nbsp;Congrats, Brandon. <br \/>Are people using Bo more for health\/lifestyle routines reminders maybe,  or quick everyday questions?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is so cool, I literally was trying to make this. It seems cool. Not sure if I would use it because I would scare of it messing up. Whats the error rate?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Works on iMessage only or other messenger apps as well? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@divya_kothari1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@divya_kothari1<\/a>&nbsp;<\/p>\n<\/p>\n<p>We are on iMessage and android messages app for now (as long as it is SMS, Bo is there)<\/p>\n<\/p>\n<p>Any specific messaging app on your mind? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Selfishly and personally excited about this!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bo_kommu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bo_kommu<\/a>&nbsp;lol we&#8217;re here for it!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the audience you&#8217;re describing, elderly, busy parents, people who&#8217;ve never really used AI, is exactly the group least equipped to reason about what they&#8217;re granting when they connect Gmail, Calendar and a watch to a texting assistant. a technical user at least has a rough mental model of an OAuth scope. someone who&#8217;s never used AI probably doesn&#8217;t. how does Bo explain what it can actually see and do in a way that lands for that audience specifically, not just a permissions screen with checkboxes that everyone taps through anyway?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;we do a pretty decent job of outlining this in our onboarding imo! if you have any specific feedback would love to hear it<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/B5PN6WZY5KMHXV\" class=\"app-title\">Task Monki<\/a><\/p>\n<div class=\"one-liner\">Run coding agents through the full development process<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">121<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Task Monki \u662f\u4e00\u6b3e\u5f00\u6e90\u684c\u9762\u5e94\u7528\uff0c\u65e8\u5728\u901a\u8fc7\u591a\u667a\u80fd\u4f53\u534f\u4f5c\u673a\u5236\uff0c\u5c06\u7f16\u7801\u4efb\u52a1\u4ece\u6267\u884c\u5230\u5ba1\u67e5\u3001\u518d\u5230\u751f\u6210\u62c9\u53d6\u8bf7\u6c42\u7684\u5168\u6d41\u7a0b\u81ea\u52a8\u5316\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u624b\u52a8\u7ba1\u7406\u591a\u4e2a\u7f16\u7801\u4ee3\u7406\u65f6\u6d41\u7a0b\u5272\u88c2\u3001\u6548\u7387\u4f4e\u4e0b\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/19d1e9c3-b0b5-4310-82a2-2ca2ba0abc13.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/guk2EJC5Jzw?si=athbfqO1xjQyWjwe\"><source src=\"https:\/\/youtu.be\/guk2EJC5Jzw?si=athbfqO1xjQyWjwe\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2cf34af0-ad4c-4a09-bce3-2bf2abf50e60.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e39d38ca-bc1b-4538-a61c-448850617c83.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cd9a056a-8989-4705-af25-0dcc183f242c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e89101cf-edd2-4021-9bf9-2e330bbf2fc2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/76094bbf-3a5a-4276-a5b0-521725eb5148.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/77c3171f-73c0-4805-b043-b819f870f0b7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Task Management<\/span><br \/>\n            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u7f16\u7801\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u591a\u667a\u80fd\u4f53\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5168\u6808\u5f00\u53d1\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u62c9\u53d6\u8bf7\u6c42<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u5bb9\u5668\u5316\u9884\u89c8<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u591a\u667a\u80fd\u4f53\u8ba8\u8bba\u4e2d\u7684\u51b2\u7a81\u89e3\u51b3\u673a\u5236\uff08\u73b0\u6709Lead-Skeptic-Verifier\u6a21\u5f0f\u65e0\u81ea\u52a8\u4ef2\u88c1\uff0c\u9700\u7528\u6237\u4ecb\u5165\uff09\uff1b\u7591\u95ee\u9884\u89c8\u662f\u5426\u652f\u6301\u5168\u6808\u53ca\u5e94\u7528\u5728\u65e0\u5bb9\u5668\u73af\u5883\uff08\u5982Serverless\uff09\u7684\u53ef\u884c\u6027\uff1b\u62c5\u5fe7\u5e76\u884c\u4efb\u52a1\u4e2d\u4ee3\u7406\u662f\u5426\u9694\u79bb\u64cd\u4f5c\u6587\u4ef6\uff1b\u5173\u5fc3\u591a\u8f6e\u8fa9\u8bba\u6a21\u5f0f\u4e0b\u7684Token\u6d88\u8017\u4e0e\u6210\u672c\u63a7\u5236\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Task Monki \u7784\u51c6\u4e86\u5f53\u524dAI\u7f16\u7a0b\u5de5\u5177\u94fe\u4e2d\u4e00\u4e2a\u771f\u5b9e\u4f46\u5fae\u5999\u7684\u7f3a\u53e3\u2014\u2014\u591a\u4ee3\u7406\u534f\u4f5c\u7684\u201c\u6d41\u7a0b\u7f16\u6392\u201d\u3002\u5b83\u6ca1\u6709\u91cd\u590d\u9020\u8f6e\u5b50\u53bb\u63d0\u5347\u5355\u4e00Agent\u7684\u4ee3\u7801\u751f\u6210\u8d28\u91cf\uff0c\u800c\u662f\u5c1d\u8bd5\u89e3\u51b3\u201c\u4e00\u7fa4\u667a\u80fd\u4f53\u5982\u4f55\u6709\u5e8f\u5730\u5171\u4e8b\u201d\u8fd9\u4e2a\u66f4\u63a5\u8fd1\u5de5\u7a0b\u7ba1\u7406\u7684\u8bae\u9898\u3002\u5176\u4ef7\u503c\u5728\u4e8e\u5c06\u201c\u4e00\u4e2a\u4eba\u5199\u4ee3\u7801\uff0c\u53e6\u4e00\u4e2a\u4eba\u5ba1\u201d\u7684\u5355\u7ebf\u6a21\u5f0f\uff0c\u8fdb\u5316\u4e3a\u201c\u591a\u4e2aAI\u89d2\u8272\u5e76\u884c\u8ba8\u8bba\u3001\u4ea4\u53c9\u8d28\u7591\u201d\u7684\u590d\u7ebf\u534f\u4f5c\u7f51\u7edc\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u53cd\u9988\u770b\uff0c\u4ea7\u54c1\u6700\u5c16\u9510\u7684\u77ed\u677f\u66b4\u9732\u5728\u201c\u51b2\u7a81\u4ef2\u88c1\u201d\u4e0e\u201c\u73af\u5883\u9002\u914d\u201d\u4e24\u5904\u3002\u5f53\u524d\u201c\u65e0\u81ea\u52a8\u4ef2\u88c1\uff0c\u5168\u9760\u4eba\u6765\u5b9a\u593a\u201d\u7684\u8bbe\u8ba1\uff0c\u672c\u8d28\u4e0a\u628a\u51b3\u7b56\u6210\u672c\u4ece\u4ee3\u7801\u5ba1\u67e5\u73af\u8282\u8f6c\u79fb\u5230\u4e86\u6a21\u578b\u7ba1\u7406\u73af\u8282\u2014\u2014\u5982\u679c\u7528\u6237\u4ecd\u9700\u624b\u52a8\u9605\u8bfb\u6bcf\u4e2aAgent\u7684\u8fa9\u8bba\u7136\u540e\u62cd\u677f\uff0c\u90a3\u201c\u591a\u667a\u80fd\u4f53\u8ba8\u8bba\u201d\u5c31\u53ea\u662f\u628a\u4e00\u6761\u6d41\u6c34\u7ebf\u62c6\u6210\u4e86\u4e09\u53f0\u6444\u50cf\u673a\uff0c\u5e76\u672a\u771f\u6b63\u51cf\u5c11\u4eba\u7684\u8ba4\u77e5\u8d1f\u8377\u3002\u8fd9\u5e76\u975e\u4e0d\u80fd\u89e3\u51b3\uff0c\u4f46\u9700\u8981\u66f4\u806a\u660e\u7684\u8f93\u51fa\u878d\u5408\u7b56\u7565\uff0c\u6bd4\u5982\u8ba9Agent\u8f93\u51fa\u7f6e\u4fe1\u5ea6\u3001\u652f\u6301\u8bc1\u636e\u7684\u94fe\u5f0f\u5f15\u7528\uff0c\u518d\u7531Lead Agent\u505a\u52a0\u6743\u51b3\u8bae\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u786c\u4f24\u662f\u201c\u5bb9\u5668\u5373\u9884\u89c8\u201d\u7684\u9690\u542b\u5047\u8bbe\u3002\u5bf9\u4e00\u4e2a\u4f9d\u8d56Lambda\u3001DynamoDB\u7b49Serverless\u67b6\u6784\u7684\u9879\u76ee\u800c\u8a00\uff0cTask Monki\u7684\u672c\u5730\u9884\u89c8\u65b9\u6848\u51e0\u4e4e\u5931\u6548\u3002\u7528\u6237\u8981\u7684\u4e0d\u662f\u201c\u9884\u89c8\u201d\uff0c\u800c\u662f\u80fd\u53cd\u6620\u751f\u4ea7\u73af\u5883\u884c\u4e3a\u7684\u201c\u53ef\u4fe1\u6d4b\u8bd5\u73af\u5883\u201d\u3002\u8fd9\u8bf4\u660e\u4ea7\u54c1\u76ee\u524d\u7684\u81ea\u52a8\u5316\u6df1\u5ea6\u4ecd\u5c40\u9650\u5728\u201c\u7ecf\u5178\u5168\u6808\u5de5\u7a0b\u201d\u7684\u76d2\u5b50\u91cc\uff0c\u5bf9\u4e91\u539f\u751f\u65e0\u670d\u52a1\u67b6\u6784\u7684\u8986\u76d6\u662f\u4e2a\u660e\u663e\u7684\u76f2\u533a\u3002\u5bf9\u4e8e\u6807\u699c\u201c\u5168\u5f00\u53d1\u6d41\u7a0b\u201d\u7684\u5de5\u5177\u800c\u8a00\uff0c\u8fd9\u65e0\u5f02\u4e8e\u53ea\u89e3\u51b3\u4e86\u4e00\u534a\u5f00\u53d1\u8005\u7684\u95ee\u9898\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u80af\u5b9a\u7684\u662f\uff0c\u56e2\u961f\u5bf9Token\u6210\u672c\u7684\u8b66\u60d5\u610f\u8bc6\u5df2\u7ecf\u5f00\u59cb\u6d6e\u73b0\uff08\u5982\u5355\u8f6e\u8fa9\u8bba\u53733\u500d\u6d88\u8017\uff09\uff0c\u4f46\u7f3a\u4e4f\u53ef\u89c1\u7684\u7528\u91cf\u9650\u5236\u548c\u6210\u672c\u8ba1\u8d39\u9762\u677f\uff0c\u8fd9\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\u5f88\u5bb9\u6613\u6210\u4e3a\u88ab\u5ffd\u89c6\u7684\u8d22\u52a1\u9ed1\u6d1e\u3002\u82e5\u65e0\u6cd5\u5728\u7528\u6237\u53ef\u89c1\u6027\u4e0a\u8865\u8db3\uff0c\u4ea7\u54c1\u5f88\u53ef\u80fd\u6ca6\u4e3a\u5c11\u6570\u5bf9\u6210\u672c\u4e0d\u654f\u611f\u7684\u56e2\u961f\u4e13\u5c5e\u73a9\u5177\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u6765\u770b\uff0cTask Monki\u662f\u4e00\u4e2a\u5728\u6b63\u786e\u65b9\u5411\u4e0a\u201c\u8fc7\u65e9\u6210\u719f\u201d\u7684\u5de5\u5177\uff1a\u5b83\u7684\u6784\u60f3\u5230\u4f4d\uff0c\u4f46\u5de5\u7a0b\u843d\u5730\u548c\u751f\u6001\u9002\u914d\u8fd8\u672a\u5151\u73b0\u3002\u82e5\u60f3\u8ba9\u201c\u591a\u667a\u80fd\u4f53\u7f16\u7a0b\u6d41\u7a0b\u81ea\u52a8\u5316\u201d\u4ece\u5671\u5934\u53d8\u4e3a\u751f\u4ea7\u529b\uff0c\u5fc5\u987b\u5148\u5c06\u201c\u672a\u5c3d\u4e4b\u4e8b\u201d\u7684\u5168\u8c8c\u6253\u5305\u8fdb\u5e94\u7528\uff0c\u800c\u4e0d\u662f\u53ea\u505a\u5230\u201c\u5927\u90e8\u5206\u201d\u5c31\u8ba9\u7528\u6237\u53bb\u586b\u8865\u5269\u4e0b\u7684\u5751\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Task Monki<\/span>\n                <\/div>\n<div class=\"comment-content\">Task Monki is an open-source desktop app for managing coding agents from task to pull request. Run several tasks at once, follow each agent\u2019s progress, preview every result without manually setting up services or containers, send work to another agent for review and fixes, and bring multiple agents into the same discussion, where they can respond to each other, compare approaches, and challenge assumptions.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I started Task Monki because I was using coding agents for more and more of my work, but managing several agents, previews, reviews, and follow-up fixes still required too much manual work.<\/p>\n<p>The goal is to bring that whole process into one app and automate as much of it as possible. It is open source, and I\u2019d really like to hear how other people are using coding agents and what is still missing from the process.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rojhattoptamus\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rojhattoptamus<\/a>&nbsp;Congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The multi-agent discussion where agents can respond to each other and challenge assumptions is what catches my eye, but I would want to know what happens when two agents land on genuinely conflicting approaches \u2014 whether the app surfaces that disagreement for me to resolve, or whether one output just wins by default. The container-free preview is also interesting: is that a local port serving a web preview, or something closer to a sandboxed execution environment? That distinction matters a lot for whether it can handle full-stack apps or mainly covers static output.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;Both are supported, but they work differently. In a Panel, agents answer independently and you compare the outputs yourself. In Team mode, the Lead proposes an answer, and the Skeptic and Verifier challenge it. If there is a disagreement, the Lead reviews the critiques and either updates the answer or leaves it for you to decide. This is still experimental, there will b a lot of improvements soon.<\/p>\n<\/p>\n<p>The preview runs locally through a stable browser URL. It is not an OS-level sandbox, but it is more than a static preview. It can run frontend and backend services, workers, migrations, readiness checks, Postgres, Redis, and existing Docker Compose setups, so full-stack previews are supported. You can check the docs to see how to prepare the preview.yaml for the previews.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;bring multiple agents into the same discussion so they can challenge assumptions&#8221; part is what catches my eye. when two agents actually disagree in there &#8211; one says the approach is fine, the other flags a problem with it &#8211; what breaks the tie? does it surface as an open disagreement for me to resolve, or does one agent&#8217;s take win by default (most confident, last word, whichever finished first)? that seems like the moment the whole point of having them argue either pays off or quietly gets lost<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Nothing wins by default. The Lead gives the initial answer, and the Skeptic and Verifier challenge it. If they still disagree, you decide how to proceed. The Lead can revise or defend the answer, but there is no automatic tie breaker for now. This is still experimental, and major improvements are planned.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Multiple agents reviewing each other is the part I am least sure about. The times I let one check another&#8217;s work, it mostly agreed. The disagreements I actually need still come from me reading the diff myself, which is slow, and I have not found a way around it yet. You asking what is still missing from the process is the reason I replied at all. Good luck with the launch today!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;My experience has actually been the opposite: agents often disagree, but usually over minor issues or unnecessary complexity. So that is why I built Discourse in the first place, to let them challenge each other and decide if something is really worth fixing\/doing or not. It is still experimental, so your feedback is really helpful. Thanks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the multi-agent discussion feature is honestly pretty wild, watching two agents go back and forth on approach is way more useful than i expected for catching blind spots in a refactor<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The full flow looks useful. When one agent reviews another, does it get the exact diff, test results, and original task context, or mostly a summary? That handoff seems like an easy place for important details to disappear.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>You asked what&#8217;s still missing, so \u2014 previews for serverless.<\/p>\n<\/p>\n<p>Your answer above covers the case where the app is a set of services you can bring up with Compose. Mine isn&#8217;t. It&#8217;s Lambda behind API Gateway with DynamoDB, and there is nothing to compose up. My equivalent of your preview is either deploying a throwaway stack per task or emulating locally, and both are slow and lie to you in different ways.<\/p>\n<\/p>\n<p>That matters more with parallel agents than with one, because the whole point of running four tasks at once is seeing four previews. Is a deploy-per-task preview backend something preview.yaml could ever express, or is local-services-only the intended scope?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rojhattoptamus\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"rojhattoptamus\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rojhattoptamus<\/a> When you run several tasks at once against the same repo, do the agents work in isolated checkouts or worktrees, or is there a chance two tasks touching overlapping files step on each other before either gets reviewed?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nobody&#8217;s asked about cost yet, and Discourse mode is the part that worries me on that front. Lead proposes, Skeptic and Verifier challenge, Lead revises &#8211; that&#8217;s already 3x the token spend of one agent, and if it can loop multiple rounds when they disagree, running several of these panels at once across parallel tasks could get expensive fast without you noticing until the bill shows up. Is there a running cost\/token counter per task, or a cap on how many back-and-forth rounds Discourse will do before it just hands you the disagreement instead of continuing to argue it out?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XZIOEFUXHF6U5X\" class=\"app-title\">Epilude<\/a><\/p>\n<div class=\"one-liner\">Local voice dictation for Mac for polished text<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">112<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Epilude\u662f\u4e00\u6b3eMac\u7aef\u672c\u5730\u8bed\u97f3\u542c\u5199\u5de5\u5177\uff0c\u7528\u6237\u6309\u4f4f\u6309\u952e\u8bf4\u8bdd\u3001\u677e\u624b\u5373\u53ef\u5c06\u53e3\u8bed\u76f4\u63a5\u8f6c\u5316\u4e3a\u683c\u5f0f\u89c4\u6574\u3001\u8bed\u6c14\u9002\u914d\u7684\u6587\u672c\uff0c\u5e76\u81ea\u52a8\u8f93\u5165\u5230\u4efb\u610f\u5e94\u7528\u4e2d\uff0c\u89e3\u51b3\u4e86\u6253\u5b57\u6162\u6216\u624b\u81c2\u52b3\u635f\u7528\u6237\u7684\u9ad8\u6548\u4e66\u5199\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/63ac5a65-b094-48f0-9e85-ba9e2aa1d414.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e86d41f6-578c-41e8-acc6-0d04a72e78a2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/905a50ff-7c15-4bde-8db5-d4d2d2cad787.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1c14d8b8-5e75-4994-8988-425bab5fbf67.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cc8b2154-b513-42b0-b702-d4f965cc2a9a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/535443f0-f425-49bb-a3c5-2e84ec13bc87.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u672c\u5730\u8bed\u97f3\u8f93\u5165<\/span><br \/>\n            <span class=\"tag\">MAC\u542c\u5199\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebfAI\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u8f6c\u6587\u5b57<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u8bed\u6c14\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u6548\u529e\u516c<\/span><br \/>\n            <span class=\"tag\">Apple Silicon<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u63d0\u793a\u8bcd<\/span><br \/>\n            <span class=\"tag\"><\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u70b9\u8d5e\u9690\u79c1\u4fdd\u62a4\u4e0e\u672c\u5730\u5904\u7406\uff0c\u4f46\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\uff081\uff09\u80fd\u5426\u68c0\u67e5\u201c\u53bb\u9664\u5e9f\u8bdd\u201d\u524d\u7684\u5185\u5bb9\uff1f\u7b54\u590d\u652f\u6301\u67e5\u770b\u672c\u5730\u5386\u53f2\u4e0e\u5b57\u8bcd\u7ea7\u5bf9\u6bd4\u3002\uff082\uff09\u84dd\u7259\u8033\u673a\u6548\u679c\u5982\u4f55\uff1f\uff083\uff09\u4e0e\u540c\u7c7b\u672c\u5730\u5de5\u5177\u5dee\u5f02\uff1f\uff084\uff09\u201c\u7ea6\u4e00\u79d2\u201d\u5ef6\u8fdf\u7684\u786c\u4ef6\u4f9d\u8d56\uff0c\u7b54\u590d\u4f18\u5316\u4e8eApple Silicon\uff0c\u4f4e\u914dMac\u6682\u4e0d\u652f\u6301\u5b8c\u6574\u672c\u5730\u6e05\u7406\u3002\uff085\uff09\u5b9a\u4ef7\u8d70\u5411\u3002\uff086\uff09\u5982\u4f55\u5904\u7406\u8bed\u53e5\u7684\u201c\u4e2d\u65ad\u91cd\u542f\u201d\uff1f\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Epilude\u5728\u201c\u672c\u5730\u8bed\u97f3\u8f6c\u6587\u672c\u201d\u8fd9\u4e2a\u8fd1\u4e4e\u7ea2\u6d77\u7684\u8d5b\u9053\u91cc\uff0c\u5e76\u6ca1\u6709\u6253\u51fa\u201c\u66f4\u51c6\u201d\u6216\u201c\u66f4\u5feb\u201d\u7684\u65d7\u53f7\uff0c\u800c\u662f\u7cbe\u51c6\u5361\u4f4d\u4e86\u201c\u9690\u79c1+\u6587\u5b57\u8d28\u91cf+\u65e0\u7f1d\u96c6\u6210\u201d\u7684\u5c0f\u4f17\u521a\u6027\u9700\u6c42\u3002\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u58c1\u5792\u2014\u2014\u6bd5\u7adfApple\u81ea\u6709\u542c\u5199\u529f\u80fd\u3001Whisper\u5f00\u6e90\u6a21\u578b\u65e9\u5df2\u8dd1\u901a\u6d41\u7a0b\uff0c\u800c\u5728\u4e8e\u4ea7\u54c1\u4f53\u9a8c\u4e0a\u7684\u201c\u538b\u7f29\u201d\uff1a\u5c06\u201c\u5f55\u97f3-\u8f6c\u5f55-\u6e05\u7406-\u9002\u914d-\u8f93\u5165\u201d\u4e94\u6b65\u75db\u611f\u538b\u7f29\u6210\u201c\u6309\u4f4f-\u8bf4-\u677e\u624b\u201d\u4e00\u79d2\u95ed\u73af\u3002\u8fd9\u79cd\u6781\u7b80\u4ea4\u4e92\u5bf9\u4e8e\u7a0b\u5e8f\u5458\u5199\u957f\u63d0\u793a\u8bcd\u3001\u5f8b\u5e08\u8d77\u8349\u90ae\u4ef6\u3001\u533b\u751f\u8bb0\u5f55\u75c5\u5386\u7b49\u9ad8\u9891\u6587\u5b57\u8f93\u5165\u573a\u666f\uff0c\u786e\u5b9e\u80fd\u5e26\u6765\u6548\u7387\u91cf\u7ea7\u63d0\u5347\u3002\u4f46\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0cMac only+16GB RAM+Apple Silicon\u7684\u4e09\u91cd\u786c\u4ef6\u95e8\u69db\uff0c\u4ee5\u53ca\u201c\u7ea6\u4e00\u79d2\u201d\u5728\u9ad8\u8d1f\u8f7dM1\u4e0a\u662f\u5426\u4f1a\u6389\u5e27\uff0c\u5b9e\u9645\u5c06\u5927\u91cf\u6f5c\u5728\u7528\u6237\u6321\u5728\u95e8\u5916\u3002\u66f4\u9700\u6ce8\u610f\u7684\u662f\uff0c\u201c\u53bb\u9664\u5e9f\u8bdd\u201d\u7684\u4e3b\u52a8\u5220\u6539\u673a\u5236\u662f\u4e00\u628a\u53cc\u5203\u5251\u2014\u2014\u53e3\u8bed\u4e2d\u4fee\u9970\u8bed\u3001\u6570\u503c\u3001\u5426\u5b9a\u7684\u8bef\u5224\u53ef\u80fd\u5f15\u53d1\u707e\u96be\u6027\u8bed\u4e49\u626d\u66f2\uff0c\u867d\u7136\u63d0\u4f9b\u4e86\u4e8b\u540ediff\u529f\u80fd\uff0c\u4f46\u201c\u5148\u65a9\u540e\u594f\u201d\u7684\u5de5\u4f5c\u6d41\u5728\u4e25\u8c28\u5199\u4f5c\u573a\u666f\u4e0b\u4ecd\u7136\u4e0d\u591f\u5b89\u5168\u3002\u82e5Epilude\u80fd\u5728\u540e\u7eed\u66f4\u65b0\u4e2d\u52a0\u5165\u201c\u63a8\u8350\u6a21\u5f0f\uff08\u9ad8\u4fdd\u771f\u8f6c\u5199\uff09\u201d\u4e0e\u201c\u6d01\u7248\u6a21\u5f0f\uff08\u667a\u80fd\u7cbe\u7b80\uff09\u201d\u7684\u5207\u6362\uff0c\u5e76\u52a0\u901f\u63a8\u51fa\u4f4e\u914d\u7248\u548cWindows\u7248\uff0c\u624d\u6709\u53ef\u80fd\u4ece\u201c\u5c0f\u800c\u7f8e\u7684\u5de5\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u8de8\u5e73\u53f0\u751f\u4ea7\u529b\u914d\u4ef6\u201d\u3002\u5426\u5219\uff0c\u5b83\u5f88\u53ef\u80fd\u53ea\u662fMac\u535a\u4e3b\u4eec\u8bc4\u6d4b\u89c6\u9891\u4e2d\u7684\u4e00\u9897\u9057\u73e0\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Epilude<\/span>\n                <\/div>\n<div class=\"comment-content\">Hold a key, speak, release: polished text lands in any app on your Mac. Epilude transcribes, punctuates, cleans up, and matches your tone in about a second. Runs fully on-device, so audio never leaves your Mac.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! I&#8217;m Gustav, one of the makers of Epilude.<\/p>\n<p>Most of my work day is writing: prompting, code reviews, Slack messages and a lot of emails. When I hurt my elbow, I needed a to find a way to keep up my writing without putting too much strain on my arm, which led us to building Epilude. <\/p>\n<p>We wanted a voice typing tool that was smooth as butter, typed what we intended to say just the way we intended to say it, and most importantly kept all our data on my Mac without anything we said being sent to anyone else&#8217;s server. <\/p>\n<p>Epilude is just that. It turns speech into finished writing, completely locally using open-weight speech-to-text and cleanup models that we&#8217;ve fine-tuned to work as well as possible on your Mac, with a tiny footprint. <\/p>\n<p>After installing it (Mac only for now), simply hold a key, say what you want to write (even in a rough format), release. Epilude will transcribe, punctuate and format your writing, trim the rambling, and match the tone to the app you&#8217;re in: formal in Mail, casual in iMessage. It takes about a second, and it works in any text field in your Mac.<\/p>\n<p>My favourite use case is that I&#8217;ve noticed that it helps me code more effectively with LLMs. I&#8217;ve found rambling out a longer prompt and then tightening it up with Epilude is a lot faster and more effective than writing each prompt by hand. I type about 44 words a minute. I speak closer to 150. <\/p>\n<p>Mac only for now, and Local Mode needs Apple Silicon. For now, full on-device cleanup requires 16GB of RAM whilst we optimise our local models; on smaller Macs you still get on-device transcription with basic formatting, and it still never touches the cloud.<\/p>\n<p>If you&#8217;ve never used a voice dictation tool for Mac, I encourage you try dictating out your next long email or prompt!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt &#8211; Mark here, the other creator of Epilude.<\/p>\n<p>Our local dictation is second to none, we&#8217;ve spent a lot of time honing the models and process to get this running smoothly. I love knowing my voice or dictations aren&#8217;t leaving my laptop &#8211; this is one for the privacy focused folk out there!<\/p>\n<\/p>\n<p>I&#8217;d also watch this space if you&#8217;re worried about sending your meetings to external servers &#8211; in August we will be launching our locally transcribed meeting notes. Watch this space!<\/p>\n<p>P.S. of course this was written with Epilude \ud83d\ude09<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Awesome design! This is a total lifesaver for slow typists like me, and having everything processed fully on-device brings huge peace of mind.<\/p>\n<p>If you don&#8217;t mind sharing, which local speech-to-text model (e.g., Whisper variant) are you running under the hood?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zeo81\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zeo81<\/a>&nbsp;Thanks! Privacy is the whole reason we are building Epilude, so this is great to hear.<\/p>\n<p>It&#8217;s actually not Whisper. On-device you&#8217;re running Epilude Model 4: a state-of-the-art open speech model we&#8217;ve optimised for Apple Silicon, paired with our own cleanup model (a fine-tune on the Qwen family) that turns the raw transcript into something you&#8217;d actually send. <\/p>\n<p>If you want the full nerdy breakdown, including how we grade every model against a zero-tolerance error bar before it ships, we wrote it up here: <a href=\"https:\/\/epilude.com\/news\/introducing-model-4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/epilude.com\/news\/introducing-model-4<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;trim the rambling&#8221; is the phrase that catches me, since that&#8217;s not just punctuation cleanup, that&#8217;s deciding what you didn&#8217;t mean to say. for casual notes that&#8217;s exactly what I&#8217;d want, but if I&#8217;m dictating something with a number, a caveat, or a qualifier in the middle of a rambly sentence, trimming risks cutting the part that mattered along with the filler. is there a way to see what got trimmed before it lands in the app, or does it commit straight to the final text with no diff to check against<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Great question &#8211; straight answer: there&#8217;s no diff before the text lands, it commits straight in. <\/p>\n<\/p>\n<p>However every dictation is saved to your local history with the raw transcript kept next to the cleaned one, plus a &#8220;See what changed&#8221; word-level diff for exactly this, so you can always check and copy the raw back.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How does it work with bluetooth headsets like airpod max? everytime i try to use a mic, basically everything sounds like 90s headset \ud83d\ude02<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How&#8217;s it different than other AI dictation tools that are local first? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;About a second&#8221; for transcribe, punctuate, clean up, and tone match fully on-device is a strong latency claim for anything beyond basic speech-to-text. What&#8217;s actually running locally and on what hardware, like is this Apple Silicon Neural Engine dependent, and what does the latency look like on older Intel Macs or lower-spec M1 machines versus a maxed-out M4?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ansari_adin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ansari_adin<\/a>&nbsp;The local dictation and cleanup is powered by our own model family (current latest model is Epilude Model 4.1, more details here: <a href=\"https:\/\/epilude.com\/news\/introducing-model-4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/epilude.com\/news\/introducing-model-4<\/a>). Currently we&#8217;ve optimized it for Apple Silicon. We&#8217;ve started with newer and slightly higher end Macs, but are planning on bringing it to more platforms\/specs in the future!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Curious to see pricing evolve as features get added.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>On-device cleanup in about a second is the impressive part \u2014 local transcription is mostly solved, but punctuation and tone-matching without a cloud round trip is where the latency usually hides. I build speech recognition into an unlock ritual, so I know the messy edges: half-finished sentences, restarts, the gap between what people say and what they meant to type. Curious how you handle a mid-sentence restart \u2014 does the cleanup pass merge it into one intent, or transcribe both fragments faithfully? Congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/PG7LUDNHC7AGDO\" class=\"app-title\">Vela<\/a><\/p>\n<div class=\"one-liner\">The AI Recruiting Coordinator<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">111<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Vela\u662f\u4e00\u6b3e\u5d4c\u5165\u90ae\u4ef6\u7ebf\u7a0b\u7684AI\u62db\u8058\u534f\u8c03\u5458\uff0c\u901a\u8fc7\u201c\u6284\u9001\u5373\u7528\u201d\u7684\u65b9\u5f0f\uff0c\u81ea\u52a8\u5904\u7406\u9762\u8bd5\u5b89\u6392\u3001\u5019\u9009\u4eba\u8ddf\u8fdb\u3001\u65e5\u7a0b\u8c03\u6574\u7b49\u7e41\u7410\u6c9f\u901a\uff0c\u89e3\u51b3\u4e86\u62db\u8058\u4e2d\u591a\u65b9\u65e5\u7a0b\u534f\u8c03\u3001\u8de8\u65f6\u533a\u6c9f\u901a\u548c\u5019\u9009\u4eba\u7ef4\u62a4\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/03bb8f65-89d9-4f92-9ebb-9db675d1f964.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/212142bb-9837-43bf-b438-b75896f7b5e1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/816f97db-7034-4d30-b01d-2ad3fe0c8a0b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3e24cf99-0901-40aa-bee6-84ceb7b83dcd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Hiring<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u62db\u8058\u534f\u8c03\u5458<\/span><br \/>\n            <span class=\"tag\">\u9762\u8bd5\u8c03\u5ea6<\/span><br \/>\n            <span class=\"tag\">\u65e5\u7a0b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u591a\u6e20\u9053\u6c9f\u901a<\/span><br \/>\n            <span class=\"tag\">\u5019\u9009\u4eba\u8ddf\u8fdb<\/span><br \/>\n            <span class=\"tag\">HR SaaS<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u62db\u8058<\/span><br \/>\n            <span class=\"tag\">AI Agent<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u6284\u9001\u5373\u7528\u201d\u7684\u4fbf\u6377\uff0c\u4f46\u6838\u5fc3\u5173\u5207\u5728\u4e8e\uff1a1\uff09AI\u5982\u4f55\u907f\u514d\u201c\u5e7b\u89c9\u201d\u53ca\u9519\u8bef\u7387\uff1b2\uff09\u5019\u9009\u4eba\u88abAI\u63a5\u89e6\u7684\u4f53\u9a8c\u662f\u5426\u8db3\u591f\u4eba\u6027\u5316\uff0c\u4f55\u65f6\u8f6c\u4eba\u5de5\uff1b3\uff09\u201c\u6536\u96c6\u53cd\u9988\u201d\u73af\u8282\u662f\u5426\u4f1a\u5728\u672a\u7ecf\u660e\u786e\u51b3\u7b56\u65f6\u5411\u5019\u9009\u4eba\u4f20\u9012\u8bef\u5bfc\u6027\u4fe1\u606f\uff1b4\uff09\u65e0\u65e5\u5386\u8bbf\u95ee\u6743\u9650\u65f6\u5982\u4f55\u907f\u514d\u65f6\u95f4\u51b2\u7a81\u3002\u56e2\u961f\u56de\u5e94\u79f0\u4f1a\u57fa\u4e8e\u660e\u786e\u51b3\u7b56\u7b49\u5f85\u6216\u63d0\u9192\uff0c\u5e76\u5feb\u901f\u4f20\u9012\u53ef\u7528\u65f6\u95f4\u4ee5\u964d\u4f4e\u9519\u8bef\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Vela\u5207\u4e2d\u7684\u662f\u4e00\u4e2a\u771f\u5b9e\u4e14\u9ad8\u9891\u7684\u201c\u810f\u6d3b\u201d\u2014\u2014\u62db\u8058\u4e2d\u7684\u591a\u65b9\u65e5\u7a0b\u534f\u8c03\u3002\u5b83\u6ca1\u6709\u9009\u62e9\u518d\u9020\u4e00\u4e2a\u72ec\u7acb\u7684\u8c03\u5ea6\u5e73\u53f0\uff0c\u800c\u662f\u964d\u7ef4\u6253\u51fb\uff0c\u76f4\u63a5\u5bc4\u751f\u5728\u90ae\u4ef6\u7ebf\u7a0b\u91cc\uff0c\u7528\u201c\u6284\u9001\u201d\u4f5c\u4e3a\u552f\u4e00\u7684\u4ea4\u4e92\u5165\u53e3\u3002\u8fd9\u79cd\u8bbe\u8ba1\u975e\u5e38\u7cbe\u660e\uff1a\u5b83\u7ed5\u5f00\u4e86B\u7aef\u4ea7\u54c1\u7684\u6700\u5927\u63a8\u5e7f\u969c\u788d\u2014\u2014\u7528\u6237\u4e60\u60ef\u6539\u53d8\u548c\u6559\u80b2\u6210\u672c\u3002\u5bf9\u4e8e\u730e\u5934\u6216\u9700\u8981\u8de8\u7ec4\u7ec7\u534f\u8c03\u7684HR\u800c\u8a00\uff0cVela\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u667a\u80fd\u201d\uff0c\u800c\u5728\u4e8e\u201c\u53ef\u9760\u5730\u6267\u884c\u65e2\u5b9a\u89c4\u5219\u201d\u548c\u201c24\u5c0f\u65f6\u4e0d\u95f4\u65ad\u54cd\u5e94\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5265\u5f00\u4eae\u773c\u7684\u5916\u58f3\uff0c\u95ee\u9898\u4e5f\u5f88\u6e05\u695a\u3002\u5176\u4e00\uff0c\u6240\u8c13\u7684\u201cAI\u534f\u8c03\u5458\u201d\u76ee\u524d\u66f4\u50cf\u4e00\u4e2a\u89c4\u5219\u5f15\u64ce+\u81ea\u7136\u8bed\u8a00\u5904\u7406\u7684\u590d\u5408\u4f53\uff0c\u5176\u6838\u5fc3\u80fd\u529b\u4f9d\u8d56\u4e8e\u5bf9\u90ae\u4ef6\u8bed\u5883\u7684\u7406\u89e3\u548c\u6392\u671f\u7b97\u6cd5\u3002\u7528\u6237\u53cd\u9988\u4e2d\u53cd\u590d\u63d0\u53ca\u7684\u201c\u5e7b\u89c9\u201d\u548c\u201c\u9519\u8bef\u7387\u201d\u662f\u81f4\u547d\u4f24\uff1a\u4e00\u6b21\u9519\u8bef\u7684\u65f6\u95f4\u63d0\u8bae\uff0c\u8db3\u4ee5\u6467\u6bc1\u4fe1\u4efb\uff0c\u5c24\u5176\u662f\u5728\u6ca1\u6709\u65e5\u5386\u5199\u5165\u6743\u9650\u7684\u60c5\u51b5\u4e0b\uff0c\u65f6\u95f4\u51b2\u7a81\u6839\u672c\u65e0\u6cd5\u907f\u514d\uff0c\u53ea\u80fd\u7528\u201c\u5feb\u901f\u4f20\u9012\u201d\u6765\u642a\u585e\u3002\u5176\u4e8c\uff0c\u5728\u53cd\u9988\u6536\u96c6\u548c\u5019\u9009\u4eba\u6c9f\u901a\u73af\u8282\uff0cVela\u6d89\u8db3\u4e86\u201c\u5224\u65ad\u201d\u800c\u975e\u4ec5\u4ec5\u662f\u201c\u6267\u884c\u201d\u3002\u4e00\u65e6AI\u5728\u201c\u4f60\u662f\u5426\u6709\u8d44\u683c\u8fdb\u5165\u4e0b\u4e00\u8f6e\u201d\u8fd9\u79cd\u654f\u611f\u95ee\u9898\u4e0a\u6697\u793a\u4e0d\u6e05\uff0c\u62db\u8058\u65b9\u5c06\u9762\u4e34\u6cd5\u5f8b\u548c\u53e3\u7891\u7684\u4e0d\u53ef\u9006\u98ce\u9669\u3002\u56e2\u961f\u56de\u5e94\u4e2d\u201c\u7b49\u5f85\u4eba\u7c7b\u51b3\u7b56\u201d\u7684\u63aa\u8f9e\uff0c\u6070\u6070\u8bf4\u660e\u5f53\u524dAI\u7684\u201c\u667a\u80fd\u201d\u8fb9\u754c\u6781\u5176\u6709\u9650\uff0c\u66f4\u50cf\u4e00\u4e2a\u5e26\u4eba\u5de5\u515c\u5e95\u7684\u81ea\u52a8\u5316\u5de5\u5177\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u5546\u4e1a\u903b\u8f91\u770b\uff0cVela\u7684\u58c1\u5792\u5728\u4e8e\u8de8\u7ec4\u7ec7\u8c03\u5ea6\u8fd9\u4e2a\u7279\u5b9a\u573a\u666f\u7684\u201c\u6570\u636e\u98de\u8f6e\u201d\u548c\u201c\u4fe1\u4efb\u79ef\u7d2f\u201d\u3002\u4f46\u8fd9\u4e5f\u610f\u5473\u7740\u5b83\u5f88\u96be\u6210\u4e3a\u4e00\u6b3e\u901a\u7528\u7684AI\u5de5\u5177\uff0c\u5176\u5929\u82b1\u677f\u53d7\u9650\u4e8e\u730e\u5934\u3001\u9ad8\u7ba1\u641c\u7d22\u516c\u53f8\u7b49\u7279\u5b9a\u5ba2\u6237\u7fa4\u3002\u6b64\u5916\uff0c\u5b83\u5fc5\u987b\u76f4\u9762Calendly\u7b49\u5df2\u6709\u8c03\u5ea6\u5de5\u5177\u3001\u4ee5\u53caAirtable\u7b49\u4f4e\u4ee3\u7801\u5e73\u53f0\u7684\u7ade\u4e89\u2014\u2014\u540e\u8005\u540c\u6837\u53ef\u4ee5\u7528AI Agent\u5b9e\u73b0\u7c7b\u4f3c\u529f\u80fd\u3002\u6700\u7ec8\uff0cVela\u80fd\u5426\u6210\u529f\uff0c\u4e0d\u53d6\u51b3\u4e8e\u5b83\u89e3\u51b3\u201c\u8c03\u5ea6\u201d\u8fd9\u4e2a\u73af\u8282\u6709\u591a\u5de7\u5999\uff0c\u800c\u5728\u4e8e\u5b83\u80fd\u5426\u5728\u4e0d\u6345\u51fa\u4e71\u5b50\u7684\u524d\u63d0\u4e0b\uff0c\u628a\u201c\u8bef\u89e6\u201d\u6210\u672c\u964d\u5230\u8db3\u591f\u4f4e\uff0c\u8ba9\u7528\u6237\u771f\u6b63\u6562\u4e8e\u201c\u5f00\u4e86\u81ea\u52a8\u6321\uff0c\u7136\u540e\u5173\u6389\u624b\u673a\u201d\u3002\u76ee\u524d\u770b\u6765\uff0c\u8fd9\u4e2a\u4fe1\u4efb\u6210\u672c\u8fd8\u5f88\u9ad8\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Vela<\/span>\n                <\/div>\n<div class=\"comment-content\">Vela is an AI recruiting coordinator. Cc it on any email thread and it takes over: candidate screens, multi-round loops, and full panels. It offers times, chases people who go quiet, handles reschedules, sends the resume with the invite, books prep calls, and collects feedback. Email, SMS, WhatsApp, Slack, and phone, every time zone, 24\/7. No links, no logins, nothing new for your team to learn. Trusted by The World&#8217;s Best Recruiters, and backed by YC, CRV, and other incredible investors.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Gobhanu, co-founder of Vela. Vela is the only scheduling agent trained specifically on recruiting scheduling data.<\/p>\n<p>The problem<br \/>\nIf you have ever run an executive search, you know the drill. One placement means six-plus rounds: a hiring committee, a board member three timezones away, a candidate who can only talk at 7am before their current job notices. Every round is a new permutation.<\/p>\n<p>And here is the part that breaks every existing tool: you have read\/write access to exactly zero of those calendars. You are not scheduling for yourself. You are brokering between parties who have never met.<\/p>\n<p>So you live in the reply-all thread. Propose, get declined, repropose, chase, repeat. Most firms solve this by hiring coordinators. Scheduling links do not work, because the person you need to book is not your user.<\/p>\n<p>What Vela does<br \/>\nYou CC Vela on the email thread. That is the whole onboarding. No new tool, no workflow change.<\/p>\n<p>From there Vela:<br \/>\nRuns the back and forth exactly like a professional coordinator would, in your firm&#8217;s voice<br \/>\nHandles the edge cases: reschedules, no-shows, &#8220;can we push 30 minutes,&#8221; five people across three timezones<br \/>\nSends the calendar invite with the resume attached and the right video link<br \/>\nWorks across email, SMS, and WhatsApp, 24\/7<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>13<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gobhanu_korisepati\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gobhanu_korisepati<\/a>&nbsp;From the hiring side, scheduling eats more of my week than actual interviewing. The failure mode I&#8217;d worry about is candidates feeling handled by a bot before they meet a human. How does Vela keep touchpoints personal, and where does it hand off to a real person?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Finally something that actually just works from your inbox instead of forcing a whole new login. Loved that it just chased my no-show candidate without me lifting a finger.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@isla_kensington\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@isla_kensington<\/a>&nbsp;Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the cc it and forget about it approach is genuinely brilliant, no new dashboard to babysit when the rest of the recruiting stack already feels bloated. love that it just lives where the work already happens.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@okandg58\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@okandg58<\/a>&nbsp;Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love the idea. How do you handle hallucination? Whats the error rate?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is awesome! Who is this built for? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@garygao\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@garygao<\/a>&nbsp;Thanks Gary! We support exec search firms and recruiting agencies!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does it have its own dashboard or it works in email threads only? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ragsyme\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ragsyme<\/a>&nbsp;It has its own dashboard too! Vela was dubbed the best ai search coordinator!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the part I&#8217;d want to understand is the feedback collection step, not the scheduling. scheduling mistakes are annoying but recoverable, you just repropose a time. &#8220;collects feedback&#8221; and talks to candidates in the firm&#8217;s voice is a different category, if a candidate asks &#8220;how did it go&#8221; or &#8220;am I moving to the next round&#8221; mid-thread, does Vela wait for an explicit decision from the hiring team before it answers, or can it infer an answer from the tone of the feedback it collected and relay that as if it were settled? that&#8217;s the kind of thing that&#8217;s hard to walk back once a candidate has heard it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;In the above situation yes! It would stand down and wait for the human descion or nudge as a reminder to the Human if needed to make sure the proccess keeps going!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The tool seems quite interesting. Do you support integrations with the most common ATS? Thanks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@daryna_radiichuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daryna_radiichuk<\/a>&nbsp;hey Daryna! Yes we do! What ATS are you using?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8216;write access to zero of those calendars&#8217; names the real problem. with no calendar access either side, how do you avoid offering a slot that&#8217;s already gone?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrewzakonov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrewzakonov<\/a>&nbsp;we are able to mimize these types of errors by simply passing on the availability as fast as possible!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love how it just lives inside the email thread, no new dashboard to babysit. Chasing candidates across SMS and Slack while the rest of us sleep feels like actual leverage, not another tool to maintain.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dailycommit\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dailycommit<\/a>&nbsp;Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YFD3NA35SJXTLA\" class=\"app-title\">AgentQuartz<\/a><\/p>\n<div class=\"one-liner\">Claude &#038; Cursor usage in your macOS menu bar<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">105<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AgentQuartz \u662f\u4e00\u6b3e\u5e38\u9a7b macOS \u83dc\u5355\u680f\u7684\u672c\u5730\u4f18\u5148\u5c0f\u5de5\u5177\uff0c\u8ba9\u7528\u6237\u65e0\u9700\u6253\u5f00\u6d4f\u89c8\u5668\u6216\u5e94\u7528\u754c\u9762\uff0c\u5c31\u80fd\u5b9e\u65f6\u67e5\u770b Claude \u548c Cursor \u7684\u7528\u91cf\u914d\u989d\uff0c\u907f\u514d\u5de5\u4f5c\u6d41\u88ab\u7a81\u7136\u89e6\u53d1\u7684\u9650\u6d41\u4e2d\u65ad\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2bb72259-fd42-4440-9dbe-e74e5f33fdf1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/dd3f5fea-c2a9-430f-9266-3b696ba57dc5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/abcd35ec-a68b-496e-b766-37388aba4903.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ee0db2fc-5e2a-48ba-9748-389a4e8e5f6d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/597318a3-94fd-40dc-a03e-b1f9b9c61379.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7b0da046-ec34-4b9e-80f1-d26ed8736e00.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u83dc\u5355\u680f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u52a9\u624b\u7528\u91cf\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">Claude<\/span><br \/>\n            <span class=\"tag\">Cursor<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u72b6\u6001\u680f\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u914d\u989d\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u4ed8\u8d39\u89e3\u9501<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u96f6\u4e91\u4f9d\u8d56\u201d\u548c\u83dc\u5355\u680f\u663e\u793a\u7684\u4fbf\u6377\u6027\uff0c\u4f46\u6838\u5fc3\u8d28\u7591\u6307\u5411\u6570\u636e\u51c6\u786e\u6027\uff1a\u7531\u4e8e\u4f9d\u8d56\u672c\u5730\u6587\u4ef6\u800c\u975e\u5b98\u65b9API\uff0c\u670d\u52a1\u5668\u7aef\u91cd\u7f6e\u6216\u591a\u8bbe\u5907\u4f7f\u7528\u53ef\u80fd\u5bfc\u81f4\u6570\u5b57\u6ede\u540e\uff1b\u5efa\u8bae\u8865\u5145\u201c\u91cd\u7f6e\u5012\u8ba1\u65f6\u201d\u800c\u975e\u4ec5\u767e\u5206\u6bd4\uff1b\u7528\u6237\u8fd8\u5173\u5fc3\u5982\u4f55\u5e94\u5bf9\u63d0\u4f9b\u5546\u7684\u914d\u7f6e\u66f4\u65b0\u5bfc\u81f4\u6570\u636e\u6e90\u5931\u6548\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                AgentQuartz \u5207\u4e2d\u4e86\u4e00\u4e2a\u771f\u5b9e\u4f46\u5fae\u5999\u7684\u521a\u9700\u2014\u2014AI \u91cd\u5ea6\u7528\u6237\uff08\u5c24\u5176\u662f Cursor \u7528\u6237\uff09\u7684\u201c\u9650\u989d\u7126\u8651\u201d\u3002\u5b83\u5c06\u9690\u85cf\u5f97\u6781\u6df1\u7684\u914d\u989d\u4fe1\u606f\u4ece\u4e8c\u7ea7\u83dc\u5355\u6216\u547d\u4ee4\u884c\u91cc\u201c\u62fd\u201d\u5230\u83dc\u5355\u680f\uff0c\u7528\u89c6\u89c9\u5316\u7684\u8fdb\u5ea6\u73af\u66ff\u4ee3\u5fc3\u7406\u8d1f\u62c5\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u505a\u4e00\u4e2a\u6781\u8f7b\u91cf\u7684\u201c\u964d\u566a\u201d\u5de5\u4f5c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5b83\u7684\u4ef7\u503c\u4e0a\u9650\u4e5f\u53d7\u9650\u4e8e\u6570\u636e\u6765\u6e90\u7684\u8106\u5f31\u6027\u3002Maker \u5766\u8a00\u5176\u4e3a\u201cUnofficial\u201d\u5e76\u4f9d\u8d56\u672c\u5730\u72b6\u6001\u6587\u4ef6\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u4fdd\u8bc1\u6570\u636e\u4e0e\u670d\u52a1\u5668\u5b9e\u65f6\u540c\u6b65\uff0c\u4e5f\u65e0\u6cd5\u5e94\u5bf9 Anthropic \u6216 Cursor \u7684\u66f4\u65b0\u3002\u8fd9\u5c31\u597d\u6bd4\u4f60\u76ef\u7740\u540e\u89c6\u955c\u91cc\u7684\u5f71\u5b50\u5f00\u8f66\u2014\u2014\u5f71\u5b50\u8bf4\u201c\u524d\u65b9\u6709\u5899\u201d\uff0c\u4f46\u6709\u65f6\u5019\u5b83\u53ea\u662f\u8f66\u706f\u706d\u4e86\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7528\u6237\u8bc4\u8bba\u4e2d\u201c78% \u6beb\u65e0\u610f\u4e49\u201d\u7684\u53cd\u9988\u6781\u5176\u7cbe\u51c6\uff1a\u5bf9\u4e8e Claude \u7684\u6eda\u52a8\u7a97\u53e3\u9650\u5236\uff0c\u767e\u5206\u6bd4\u53ea\u662f\u6050\u614c\u503c\uff0c\u771f\u6b63\u80fd\u51b3\u7b56\u7684\u201c\u91cd\u7f6e\u65f6\u95f4\u201d\u624d\u662f\u94a9\u5b50\u30023 \u7f8e\u5143\u7684\u4e00\u6b21\u6027\u5b9a\u4ef7\u806a\u660e\u5730\u53cd\u6620\u4e86\u8be5\u5de5\u5177\u7684\u5929\u82b1\u677f\u2014\u2014\u5b83\u662f\u4e2a\u4fdd\u59c6\uff0c\u4f46\u4e0d\u662f\u4e00\u4e2a\u5168\u80fd\u7684\u7ba1\u5bb6\u3002\u503c\u5f97\u80af\u5b9a\u7684\u662f\uff0cMaker \u5728\u201c\u672c\u5730\u4f18\u5148\u201d\u548c\u201c\u65e0\u4e91\u8d26\u6237\u201d\u4e0a\u7684\u575a\u6301\uff0c\u56de\u5e94\u4e86\u5f00\u53d1\u8005\u5bf9\u6570\u636e\u9690\u79c1\u7684\u654f\u611f\u55c5\u89c9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u5b83\u89e3\u51b3\u7684\u662f\u201c\u6211\u5feb\u8d85\u9650\u4e86\u201d\u7684\u7126\u8651\uff0c\u800c\u4e0d\u662f\u201c\u6211\u8fd8\u80fd\u7528\u591a\u4e45\u201d\u7684\u51b3\u7b56\u3002\u505a\u5bf9\u4e86\u75db\u70b9\u63d0\u53d6\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u8f7b\u91cf\u76d1\u89c6\u5668\u201d\u8fdb\u5316\u4e3a\u201c\u667a\u80fd\u914d\u989d\u7ba1\u5bb6\u201d\uff0c\u53d6\u51b3\u4e8e\u5bf9\u5b98\u65b9 API \u4f9d\u8d56\u7684\u7834\u5c40\u80fd\u529b\u3002\u76ee\u524d\u770b\u6765\uff0c\u66f4\u9002\u5408\u90a3\u4e9b\u613f\u610f\u4e3a\u83dc\u5355\u680f\u7701\u53bb\u4e00\u6b21\u70b9\u51fb\u800c\u4ed8\u8d39\u7684\u6781\u7b80\u4e3b\u4e49\u8005\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">AgentQuartz<\/span>\n                <\/div>\n<div class=\"comment-content\">Local-first macOS menu-bar companion for Claude and Cursor usage. Glance at limits without a browser tab. No AgentQuartz cloud account \u2014 settings stay on your machine. Free forever for essentials; Pro is a one-time $3 unlock for tray customization. Unofficial.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \u2014 I\u2019m Marco, maker of AgentQuartz.<\/p>\n<p>I built a lightweight macOS menu-bar companion to see Claude and Cursor usage without opening another browser tab. It\u2019s local-first: settings and session material stay on your machine.<\/p>\n<p>What\u2019s free forever<br \/>\n\u2022 Claude + Cursor usage in the menu bar (more providers in the future)<br \/>\n\u2022 Circular progress + provider mark<br \/>\n\u2022 Local opt-in import and settings<\/p>\n<p>Pro ($3 one-time, lifetime via Gumroad)<br \/>\n\u2022 Extra gauge shapes (pie, bar, arc)<br \/>\n\u2022 Mark placement (inside \/ outside left\/right)<br \/>\n\u2022 Hide menu-bar percentages<\/p>\n<p>Install note: the current build is an unsigned macOS .app zip from GitHub Releases. On first open you may need Right-click \u2192 Open (or allow it in System Settings \u2192 Privacy &amp; Security). Not affiliated with Anthropic or Cursor.<\/p>\n<p>Download: <a href=\"https:\/\/agentquartz.vercel.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/agentquartz.vercel.app<\/a><br \/>\nLatest release: <a href=\"https:\/\/github.com\/marco-calderon\/agent-quartz-releases\/releases\/latest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/marco-caldero&#8230;<\/a><br \/>\nPro: <a href=\"https:\/\/mcalderoncode.gumroad.com\/l\/agentquartz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/mcalderoncode.gumroad.co&#8230;<\/a><\/p>\n<p>Would love honest feedback \u2014 what would make this more useful in your day?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mcalderon_codes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcalderon_codes<\/a> Cool idea! it&#8217;s there a demo version ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How&#8217;s it different than <a href=\"https:\/\/www.producthunt.com\/products\/blackflare\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"blackflare\" target=\"_blank\" rel=\"noopener\">@BlackFlare<\/a>? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I think the Claude Max plan has very high limits so I wonder is this targeted to people on smaller plans who want to monitor their usage? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The percentage is the less useful half of the number. Claude&#8217;s limits are rolling windows, so 78% tells me nothing until I know whether the window resets in eight minutes or four hours, and that&#8217;s the actual decision I&#8217;m making at that moment, start the big refactor or go make coffee. I&#8217;d put time to reset in the tray and the percentage in the dropdown. The other thing worth deciding early is what the tray shows when two providers disagree, because a single number in a menu bar reads as authoritative even when it&#8217;s flattening two different things.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is really cool. I am always struggling to even find my Context usage inside the Cursor UI. Typing \/usage into claude code after each prompt also is pretty damn annoying.<\/p>\n<p>Really cool idea. Its so simple yet effective \ud83d\ude42 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Menu bar usage tracking with zero cloud dependency is exactly what I wanted. Lived in my status bar all day without fuss.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Menu bar usage tracking is one of those things you don&#8217;t know you want until you&#8217;ve hit a limit mid-task with no warning.<\/p>\n<p>Since this is reading local state rather than an official endpoint, the thing I&#8217;d want to know is how it handles being wrong. Local config isn&#8217;t necessarily authoritative \u2014 a session used elsewhere, or a reset that happens server-side, could leave the displayed number out of step with reality. Does it reconcile against anything, or is the assumption that local is close enough? A number in the menu bar carries a lot of implied confidence, so being quietly off would be worse than showing a range.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats! I really like the product&#8217;s design. It looks great on macOS!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice! Cursor&#8217;s is particularly hidden by default. You&#8217;ll know what we&#8217;re gonna ask&#8230; is codex&#8217;s not as easily reachable? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>finally a tiny utility that does exactly what i need, love that it lives in the menu bar and i don&#8217;t have to dig through the cursor window to check limits anymore.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>since this is unofficial and there&#8217;s no cloud account, I&#8217;m guessing it&#8217;s reading local session\/config files or an undocumented local endpoint rather than a published usage API from Anthropic or Cursor. if that&#8217;s the case, what happens when either of them ships an update that moves or restructures where that data lives &#8211; does the tray just go blank, show stale numbers, or is there some way it&#8217;d tell you it&#8217;s out of sync<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@galdayan so what are your plans<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/SEEAWEYLO7NGXO\" class=\"app-title\">BlackFlare<\/a><\/p>\n<div class=\"one-liner\">Mission control for Claude Code &#038; Codex in your menu bar<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">103<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>BlackFlare\u662f\u4e00\u6b3emacOS\u83dc\u5355\u680f\u539f\u751f\u5e94\u7528\uff0c\u4e13\u4e3aClaude Code\u548cCodex\u7528\u6237\u89e3\u51b3\u957f\u65f6\u4efb\u52a1\u8fd0\u884c\u65f6Mac\u4f11\u7720\u5bfc\u81f4\u4efb\u52a1\u4e2d\u65ad\u3001\u4efb\u52a1\u5b8c\u6210\u540e\u65e0\u901a\u77e5\u6d6a\u8d39\u7b49\u5f85\u65f6\u95f4\u3001\u4ee5\u53ca\u65e0\u6cd5\u5728\u4efb\u52a1\u5361\u4f4f\u65f6\u53ca\u65f6\u54cd\u5e94\u7684\u4e09\u5927\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0cd8e5f1-b900-4cfa-a8bb-fad7c232b4bf.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/708bdf33-86c7-4797-ab7f-de5dcc36c5a9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9f570c4d-648a-4b0a-8f6b-8bf9122078f9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e14167d5-af5c-4c88-8b80-70b52af8813f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b614b3a0-4dc2-463c-af71-df2ee6441191.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/a742e3fc-3ae0-4622-93d7-807605490326.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/S8jl3vu56h8\"><source src=\"https:\/\/youtu.be\/S8jl3vu56h8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">macOS\u83dc\u5355\u680f<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u901a\u77e5\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4fdd\u6301\u5524\u9192<\/span><br \/>\n            <span class=\"tag\">\u914d\u989d\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u4fdd\u6301\u5524\u9192+\u5b8c\u6210\u901a\u77e5\u201d\u89e3\u51b3\u6838\u5fc3\u75db\u70b9\uff0c\u4f46\u91cd\u70b9\u5173\u6ce8\u201c\u4efb\u52a1\u5b8c\u6210\u201d\u4e0e\u201c\u7b49\u5f85\u8f93\u5165\u201d\u7684\u72b6\u6001\u533a\u5206\u7cbe\u5ea6\u3002\u5f00\u53d1\u8005\u56de\u5e94\uff1aClaude Code\u53ef\u7cbe\u51c6\u533a\u5206\uff0cCodex\u76ee\u524d\u7c97\u7c92\u5ea6\u4f46\u201c\u5b89\u5168\u65b9\u5411\u201d\u901a\u77e5\u3002\u90e8\u5206\u7528\u6237\u5173\u5fc3\u201c\u79bb\u5f00\u68c0\u6d4b\u201d\u903b\u8f91\uff08\u9501\u5c4f\/2\u5206\u949f\u65e0\u64cd\u4f5c\uff09\uff0c\u4ee5\u53ca\u76f4\u63a5\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\u7684\u7a33\u5b9a\u6027\u98ce\u9669\uff08\u4f9d\u8d56\u975e\u7a33\u5b9aAPI\u683c\u5f0f\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                BlackFlare\u8e29\u4e2d\u4e86\u4e00\u4e2a\u975e\u5e38\u7cbe\u51c6\u4e14\u88ab\u4f4e\u4f30\u7684\u75db\u70b9\uff1aAI\u7f16\u7801\u52a9\u624b\u8d8a\u5f3a\u5927\uff0c\u7528\u6237\u8d8a\u5bb9\u6613\u201c\u6492\u624b\u4e0d\u7ba1\u201d\uff0c\u800c\u201c\u6492\u624b\u4e0d\u7ba1\u201d\u540eMac\u7684\u4f11\u7720\u673a\u5236\u5c31\u6210\u4e86\u6548\u7387\u9ed1\u6d1e\u3002\u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u5b83\u6ca1\u6709\u53bb\u9020\u4e00\u4e2a\u65b0\u7684Agent\u8f6e\u5b50\uff0c\u800c\u662f\u505a\u4e86\u4e00\u5708\u6700\u52a1\u5b9e\u7684\u201c\u4fdd\u59c6\u5c42\u201d\u2014\u2014\u5524\u9192\u9501\u5b9a\u3001\u72b6\u6001\u901a\u77e5\u3001\u914d\u7f6e\u5207\u6362\u3001\u914d\u989d\u5c55\u793a\u3002\u8fd9\u79cd\u5b9a\u4f4d\u975e\u5e38\u806a\u660e\uff0c\u4e5f\u6781\u5176\u514b\u5236\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ed4\u7ec6\u5ba1\u89c6\uff0c\u5b83\u7684\u62a4\u57ce\u6cb3\u5e76\u4e0d\u6df1\u3002\u6838\u5fc3\u529f\u80fd\u201c\u4f1a\u8bdd\u72b6\u6001\u68c0\u6d4b\u201d\u4e25\u91cd\u4f9d\u8d56Claude Code\u548cCodex\u7684\u79c1\u6709\u534f\u8bae\u548c\u6587\u4ef6\u683c\u5f0f\uff0c\u5f00\u53d1\u8005\u81ea\u5df1\u4e5f\u5766\u9648Claude Code\u7cbe\u51c6\u3001Codex\u7c97\u7c92\u5ea6\u3002\u8fd9\u610f\u5473\u7740BlackFlare\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u8865\u4e01\u5f0f\u201d\u4ea7\u54c1\uff0c\u4efb\u4f55\u5e95\u5c42\u5de5\u5177\u7684API\u8c03\u6574\u6216\u65e5\u5fd7\u683c\u5f0f\u53d8\u66f4\uff0c\u90fd\u4f1a\u76f4\u63a5\u5bfc\u81f4\u72b6\u6001\u5224\u65ad\u5931\u6548\u3002\u867d\u7136\u5f00\u53d1\u8005\u627f\u8bfa\u201c\u5907\u4efd\u540e\u7f16\u8f91\u201d\uff0c\u4f46\u5f53\u7528\u6237\u4f9d\u8d56\u5b83\u6765\u5207\u6362\u6743\u9650\u6a21\u5f0f\u6216\u6a21\u578b\u65f6\uff0c\u4e00\u6b21\u8bef\u8bfb\u5c31\u53ef\u80fd\u5bfc\u81f4\u9519\u8bef\u7684\u8fd0\u884c\u73af\u5883\uff0c\u5c24\u5176\u5728\u4f01\u4e1a\u654f\u611f\u573a\u666f\u4e0b\uff0c\u4fe1\u4efb\u6210\u672c\u5f88\u9ad8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u5546\u4e1a\u89d2\u5ea6\u770b\uff0c\u8fd9\u79cd\u201c\u4f9d\u9644\u578b\u5de5\u5177\u201d\u7684\u957f\u671f\u4ef7\u503c\u5b58\u7591\u3002\u4e00\u65e6Anthropic\u6216OpenAI\u5b98\u65b9\u5c06\u7c7b\u4f3c\u529f\u80fd\u52a0\u5165CLI\u6216IDE\uff08\u6bd4\u5982\u539f\u751f\u63d0\u4f9b\u5524\u9192\u9501\u5b9a\u6216Telegram\u901a\u77e5\uff09\uff0cBlackFlare\u7684\u5dee\u5f02\u5316\u4f18\u52bf\u5c06\u77ac\u95f4\u6d88\u5931\u3002\u5f53\u524d\u9636\u6bb5\u5b83\u66f4\u50cf\u662f\u5f00\u53d1\u8005\u751f\u6001\u4e2d\u7684\u201c\u8fc7\u6e21\u6027\u6700\u4f18\u89e3\u201d\uff0c\u800c\u975e\u7ec8\u5c40\u4ea7\u54c1\u3002\u4e0d\u8fc7\uff0c\u5bf9\u4e8e\u6bcf\u5929\u8dd1\u6570\u5341\u6b21\u957f\u4efb\u52a1\u7684\u6df1\u5ea6\u7528\u6237\uff0c\u5b83\u786e\u5b9e\u80fd\u7701\u4e0b\u8089\u773c\u53ef\u89c1\u7684\u65f6\u95f4\u2014\u2014\u524d\u63d0\u662f\u4f60\u80fd\u63a5\u53d7\u5b83\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201cAI\u4fdd\u59c6\u7684\u4fdd\u59c6\u201d\uff0c\u800c\u4e14\u8fd9\u4e2a\u4fdd\u59c6\u7684\u611f\u77e5\u80fd\u529b\u5b8c\u5168\u4ef0\u4ed7\u4e3b\u5b50\u7684\u5fc3\u60c5\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">BlackFlare<\/span>\n                <\/div>\n<div class=\"comment-content\">BlackFlare &#8211; a native macOS menu bar app for Claude Code and Codex. Keep your Mac awake during long runs, get notified when a session finishes or needs you, switch your defaults from the menu, and watch plan usage \u2014 all on-device.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Ahoy, captains \ud83d\udc4b<\/p>\n<p>I&#8217;m Tin Nguyen, a pirate at The Black Flagger<\/p>\n<p>You give Claude Code or Codex a real task and walk away. Two things go wrong.<\/p>\n<p>Your Mac falls asleep, and your agent stops with it. Or it finishes in two minutes \u2014 and you find out at lunch. Worse, it got stuck on a small question after 30 seconds and waited for you the whole time.<\/p>\n<p>BlackFlare closes both gaps. It&#8217;s a small app that lives in your menu bar.<\/p>\n<p>\ud83d\udd25 Your Mac stays awake while a session runs, and sleeps again when it&#8217;s done. Long refactors finish while you&#8217;re gone.<\/p>\n<p>\ud83d\udd14 It pings you the second the agent finishes or gets stuck. On your Mac, or on Telegram or Slack so you can leave the desk and actually touch some grass. Works with Claude Code and Codex CLI in the terminal, VS Code, and JetBrains. You can tell it to stay quiet while you&#8217;re sitting right there.<\/p>\n<p>\u2699\ufe0f Change your default configs from the menu. Model, permission mode, effort \u2014 one click, no flags to remember, no editing JSON by hand. It edits your config files carefully, backs them up first, and never reformats anything.<\/p>\n<p>\ud83d\udcca See how much usage you have left on your plan, right in the menu bar, with a warning before you run low.<\/p>\n<p>No account. No tracking. Nothing leaves your Mac. To show your real usage it reads your Claude token from the Keychain \u2014 read-only, and only if you turn it on. That token goes to Anthropic and nowhere else.<\/p>\n<p>Works on macOS 13 or later, on both Intel and Apple silicon.<\/p>\n<p>I&#8217;m here all day \u2014 tell me what your agents get up to while you&#8217;re not watching. \ud83c\udff4\u200d\u2620\ufe0f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@theblackflagger\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@theblackflagger<\/a>Just what i needed. Congrats and thanks \ud83d\ude42 <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<blockquote>\n<p>Keeping the Mac awake and pinging on completion is a small surface but it&#8217;s solving the actual annoyance \u2014 long agent runs are exactly when you walk away, and walking away is what puts the machine to sleep.<\/p>\n<p>How does it detect that a run finished? Watching process state, parsing terminal output, or hooking something more specific to each tool? I ask because the failure mode that would matter is a false completion \u2014 getting pinged, coming back, and finding it still going. That&#8217;d cost more trust than a missed notification would, and I&#8217;d guess process-level detection is more robust but less precise about what &#8220;done&#8221; means.<\/p>\n<\/blockquote>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;Thanks so much \u2014 and great question \ud83d\ude42<\/p>\n<p>Everything comes from the agent&#8217;s own reported state. BlackFlare installs the proper hooks and quietly tracks your Claude\/Codex sessions, so at any moment it knows which sessions are working, which are paused waiting on you, and which have actually wrapped up. Thinking, or a command that takes ten minutes, is just &#8220;working&#8221; \u2014 silence, no false alarm.<\/p>\n<p>Worth being upfront about one limit: that separation is currently sharpest on Claude Code, which reports both states explicitly \u2014 <em>waiting for your input<\/em> and <em>task finished<\/em>. For Codex, BlackFlare reads its session files today, and those capture turn completions but not approval prompts \u2014 so both land as &#8220;this session needs you.&#8221; A bit coarser, though it fails in the safe direction: you still get pulled back at the moment it counts. Sharpening that is already on my list \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice one, already got it. Quick question though &#8211; how does &#8220;away&#8221; detection work? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mlitwiniuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mlitwiniuk<\/a>&nbsp;Thanks so much for picking it up \u2014 really appreciate the support!<\/p>\n<p>&#8220;Away&#8221; = your screen is locked, or you haven&#8217;t touched the keyboard\/mouse for 2 minutes. That&#8217;s it \u2014 just the macOS lock state and system idle timer, checked right when a notification is about to fire.<\/p>\n<\/p>\n<p>The 2 minutes is a default for now \u2014 I&#8217;m planning to make it configurable in a future update so you can tune it to your own rhythm.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is exactly what I needed for overnight Claude Code runs. The menu bar presence is super clean and the wake-lock toggle saved me from constantly ssh-ing back to check. Watching plan usage from the same spot is a nice touch too.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@checklistpro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@checklistpro<\/a>&nbsp;This is exactly the workflow I built it for, so that&#8217;s great to hear! Thanks for the kind words! \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This solves a surprisingly real coding-agent problem \ud83d\ude42 I&#8217;ve definitely started long Codex runs, walked away, then returned much later only to find the session finished quickly or had been waiting on one tiny approval the whole time. Keeping the Mac awake, sending remote notifications, and showing plan usage from the menu bar feels like exactly the lightweight companion these tools need, without becoming another agent platform. Curious how reliably BlackFlare detects when an agent is genuinely stuck versus simply thinking or running a long command.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;Thanks \u2014 that&#8217;s exactly the gap I kept falling into myself \ud83d\ude42<\/p>\n<p>Fair question \u2014 and the honest answer is that BlackFlare never <em>guesses<\/em>.<\/p>\n<p>Under the hood it installs the proper hooks and quietly tracks your Claude\/Codex sessions, so at any moment it knows which sessions are working, which are waiting on you, and which just finished. Thinking and long-running commands are simply &#8220;working&#8221; \u2014 no ping, no false alarm.<\/p>\n<p>One nuance worth being upfront about: telling <em>waiting for input<\/em> apart from <em>finished<\/em> is currently precise on Claude Code, which exposes both as distinct events. For Codex, BlackFlare reads its session files today, and those record turn completions but not approval prompts \u2014 so both cases surface as &#8220;this session needs you.&#8221; Slightly less granular, but it errs on the safe side: you still get pulled back at the right moment, which is the part that actually matters. Making this more precise is already on my list \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The problem this solves is real \u2014 I have lost track of how many times I gave Claude Code a task, wandered off, and came back to find it had finished twenty minutes ago and was just sitting there. The notification routing to Telegram is the part I would actually use most. The thing I want to know upfront is how it distinguishes a session that is truly finished from one that is paused mid-task waiting on input \u2014 whether that is coming from parsing terminal output or from the agent explicitly reporting a terminal state, since those two behave very differently when something goes sideways halfway through.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;Thanks so much \u2014 and great question, it&#8217;s exactly the difference that matters \ud83d\ude42<\/p>\n<p>Everything comes from the agent&#8217;s own reported state. BlackFlare installs the proper hooks and quietly tracks your Claude\/Codex sessions, so at any moment it knows which sessions are working, which are paused waiting on you, and which have actually wrapped up. Thinking, or a command that takes ten minutes, is just &#8220;working&#8221; \u2014 silence, no false alarm.<\/p>\n<p>Worth being upfront about one limit: that separation is currently sharpest on Claude Code, which reports both states explicitly. For Codex, BlackFlare reads its session files today, and those capture turn completions but not approval prompts \u2014 so both land as &#8220;this session needs you.&#8221; A bit coarser, though it fails in the safe direction: you still get pulled back at the moment it counts. Sharpening that is already on my list \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Saw <a href=\"https:\/\/www.producthunt.com\/products\/agentquartz\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"agentquartz\" target=\"_blank\" rel=\"noopener\">@AgentQuartz<\/a> on the leaderboard today. Seems this has more features than that. Congrats on shipping. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Keeps my Mac awake during long Claude runs and the menu bar alerts actually saved me from missing a few finished sessions. Solid little utility.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the part that gives me pause isn&#8217;t the notification logic, that seems well thought through in the replies above. it&#8217;s that this edits config files directly, model, permission mode, effort, based on reading session state that Anthropic and OpenAI don&#8217;t publish as a stable format. what happens the next time either of them changes how that session data is structured? does BlackFlare fail loud (stops editing, tells you it&#8217;s out of date) or is there a risk it writes back a config edit based on a state it misread? backups before edits helps with the second case, but only if you notice something&#8217;s off before you&#8217;re relying on the wrong model or permission mode mid-run.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GRTVHXLM4U4LY3\" class=\"app-title\">SceneNote<\/a><\/p>\n<div class=\"one-liner\">Free video feedback tool for editors &#038; clients<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">101<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>SceneNote\u662f\u4e00\u6b3e\u65e0\u9700\u6ce8\u518c\u3001\u514d\u8d39\u4f7f\u7528\u7684\u89c6\u9891\u53cd\u9988\u5de5\u5177\uff0c\u901a\u8fc7\u7c98\u8d34YouTube\u3001Vimeo\u6216Dropbox\u7684\u94fe\u63a5\uff0c\u8ba9\u7f16\u8f91\u548c\u5ba2\u6237\u5728\u89c6\u9891\u4e0a\u6dfb\u52a0\u65f6\u95f4\u6233\u8bc4\u8bba\u3001\u753b\u6846\u6279\u6ce8\u548c\u81ea\u52a8\u8f6c\u5f55\u8bed\u97f3\u7b14\u8bb0\uff0c\u5e76\u53ef\u5c06\u6240\u6709\u53cd\u9988\u4e00\u952e\u5bfc\u51fa\u4e3aPremiere\u3001Resolve\u6216Final Cut\u7684\u6807\u8bb0\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/14b49382-4ec6-4717-b322-ba6dea704945.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/QwGIUR29oGc\"><source src=\"https:\/\/youtu.be\/QwGIUR29oGc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/76013dbd-3f8a-462b-bc42-59dd5b27311e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bbb02cbf-8cde-495c-b298-5b6ad611862a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9a2b3df6-1cb6-4e3d-87f4-492eafb25456.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8880c8b7-1d33-4ce5-9b94-6defc50c238e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/28e9283a-58c3-4eea-b194-0da1d057c60f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u89c6\u9891\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u5ba1\u9605<\/span><br \/>\n            <span class=\"tag\">\u8fdc\u7a0b\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u540e\u671f\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u65f6\u95f4\u6807\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u6279\u6ce8<\/span><br \/>\n            <span class=\"tag\">EDL\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u6237\u6c9f\u901a<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u201c\u65e0\u9700\u8d26\u6237\u201d\u7684\u8bbe\u8ba1\uff0c\u8ba4\u4e3a\u89e3\u51b3\u4e86\u5ba2\u6237\u6ce8\u518c\u7684\u75db\u70b9\u3002\u591a\u6570\u95ee\u9898\u96c6\u4e2d\u5728\u591a\u4eba\u8bc4\u8bba\u7684\u5f52\u5c5e\uff08\u53ef\u901a\u8fc7\u81ea\u586b\u59d3\u540d\u89e3\u51b3\uff09\u3001\u4eceYouTube\u94fe\u63a5\u5bfc\u51fa\u65f6\u7684\u5e27\u7cbe\u5ea6\u6f02\u79fb\uff08\u652f\u6301\u8bbe\u7f6e\u5e27\u7387\uff09\uff0c\u4ee5\u53caGoogle Drive\u94fe\u63a5\u7684\u4e0d\u7a33\u5b9a\u95ee\u9898\u3002\u90e8\u5206\u7528\u6237\u5e0c\u671b\u589e\u52a0\u7248\u672c\u5bf9\u6bd4\u529f\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                SceneNote\u5207\u4e2d\u7684\u662f\u4e00\u4e2a\u88ab\u8fc7\u5ea6\u5de5\u7a0b\u5316\u7684\u7ec6\u5206\u573a\u666f\u2014\u2014\u89c6\u9891\u5ba1\u9605\u3002\u5e02\u9762\u4e0aFrame.io\u3001Wipster\u7b49\u5de5\u5177\u529f\u80fd\u4e30\u5bcc\uff0c\u4f46\u6708\u8d39\u6a21\u5f0f\u548c\u5f3a\u5236\u6ce8\u518c\u7684\u9ad8\u95e8\u69db\uff0c\u4e0e\u8fd9\u4e2a\u73af\u8282\u201c\u4f4e\u9891\u3001\u77ed\u671f\u3001\u591a\u89d2\u8272\u201d\u7684\u672c\u8d28\u4e25\u91cd\u9519\u4f4d\u3002\u521b\u5efa\u8005\u654f\u9510\u5730\u5265\u79bb\u4e86\u6700\u6602\u8d35\u7684\u5b58\u50a8\u548c\u5206\u53d1\uff0c\u53ea\u505a\u53cd\u9988\u5c42\uff0c\u5229\u7528\u5bbf\u4e3b\u5e73\u53f0\uff08YouTube\u3001Vimeo\uff09\u7684\u64ad\u653e\u5668\uff0c\u5b9e\u73b0\u4e86\u201c\u96f6\u6210\u672c\u201d\u7684\u8f7b\u91cf\u7ea7\u65b9\u6848\u3002\u8fd9\u4e2a\u201c\u780d\u6389\u5927\u8c61\u201d\u7684\u51b3\u7b56\u662f\u806a\u660e\u7684\uff0c\u4f46\u4e0d\u662f\u65e0\u4ee3\u4ef7\u7684\u3002\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u5e27\u7cbe\u5ea6\u95ee\u9898\uff08YouTube\u7684I\u5e27\u5bf9\u9f50\u3001\u5e27\u7387\u6f02\u79fb\uff09\u662f\u89c6\u9891\u884c\u4e1a\u7684\u7269\u7406\u9650\u5236\uff0c\u5728\u88ab\u5220\u9664\u7684\u5bbf\u4e3b\u5c42\u4e2d\u65e0\u6cd5\u5f7b\u5e95\u89e3\u51b3\u3002\u867d\u7136\u5141\u8bb8\u624b\u52a8\u8bbe\u7f6e\u5e27\u7387\uff0c\u4f46\u8fd9\u7b49\u4e8e\u5c06\u8d28\u91cf\u7684\u4e00\u90e8\u5206\u8d23\u4efb\u4ea4\u7ed9\u4e86\u7528\u6237\u3002\u6b64\u5916\uff0c\u7f3a\u4e4f\u7248\u672c\u5bf9\u6bd4\u529f\u80fd\uff0c\u5bf9\u4e8e\u591a\u8f6e\u5ba1\u9605\u7684\u590d\u6742\u9879\u76ee\u4ecd\u662f\u660e\u663e\u7684\u77ed\u677f\u3002SceneNote\u7684\u7406\u60f3\u7528\u6237\u662f\u72ec\u7acb\u521b\u4f5c\u8005\u3001\u5c0f\u56e2\u961f\u6216\u9884\u7b97\u6709\u9650\u7684\u7532\u65b9\u4e59\u65b9\uff0c\u5b83\u7528\u6781\u81f4\u7684\u51cf\u6cd5\u6362\u53d6\u6781\u9ad8\u7684\u6613\u7528\u6027\u3002\u4f46\u82e5\u5411\u4e13\u4e1a\u7ea7\u534f\u4f5c\u5de5\u5177\u6f14\u8fdb\uff0c\u8d26\u53f7\u4f53\u7cfb\u548c\u7a33\u5b9a\u7684\u6e90\u6587\u4ef6\u63a7\u5236\u662f\u7ed5\u4e0d\u8fc7\u53bb\u7684\u574e\u3002\u76ee\u524d\u201c\u514d\u8d39\u4e14\u597d\u7528\u7684\u5de5\u5177\u201d\u662f\u5176\u6700\u5927\u62a4\u57ce\u6cb3\uff0c\u4f46\u4e5f\u662f\u5176\u96be\u4ee5\u5546\u4e1a\u5316\u7684\u8f6f\u808b\u3002\u8fd9\u662f\u4e2a\u5929\u624d\u7684MVP\uff0c\u4f46\u9700\u8981\u660e\u786e\u7ec8\u5c40\uff1a\u662f\u7ef4\u6301\u5c0f\u800c\u7f8e\uff0c\u8fd8\u662f\u8d70\u5411\u66f4\u91cd\u7684\u534f\u4f5c\u5e73\u53f0\uff1f\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">SceneNote<\/span>\n                <\/div>\n<div class=\"comment-content\">Every other video review tool wants an account, an upload, or a subscription. SceneNote wants none of them. Paste a YouTube, Vimeo, or Dropbox link, share it, and collect feedback in seconds. Timestamped comments, annotations drawn on the frame, voice notes that transcribe themselves, versions, and tasks. Your reviewers never sign up. Export as CSV or EDL and every note lands as a marker in Premiere, Resolve, or Final Cut. Free because we build on links instead of hosting your video.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey, I&#8217;m Kiril  \ud83d\udc4b<\/p>\n<p>I&#8217;ve been a filmmaker for 10+ years, and every time I sent a cut for feedback, two things always bugged me. My clients had to make an account just to leave feedback. And.. I was paying a monthly subscription for something I only use at the end of a project. So I built SceneNote: video feedback that&#8217;s free, and needs no account from anyone.<\/p>\n<p>Whether you&#8217;re the one editing or the one sending notes back, you know the drill. A cut goes out, and the feedback comes back as a four-minute voice note, or buried in an email chain somewhere. Messy and disorganized \ud83d\ude45\ud83c\udffb\u200d\u2642\ufe0f <\/p>\n<p>Now, I know there are already tools that fix this. But every one I tried sat behind a monthly subscription, which never sat right with me. Feedback is a small, specific part of a project. It happens near the end, for a short window, and paying every month for those few days made no sense.<\/p>\n<p>That got me thinking: why can&#8217;t this just be free?<\/p>\n<p>Turns out most of the cost in these tools is storage and delivery. So I skipped it entirely. SceneNote works off links. Your video stays where it already natively lives (YouTube unlisted, Vimeo, Dropbox etc) and SceneNote builds the feedback layer on top. No hosting, so no bill for you!<\/p>\n<p>Here&#8217;s the whole thing:<\/p>\n<p>1. Paste a link &gt; share it &gt; collect feedback<br \/>\n2. Leave timestamped comments or annotations on the frame.<br \/>\n3. Export every note into Premiere, Resolve, or Final Cut as markers.<\/p>\n<p>The core stays free forever and will never need an account. If people ask for heavier pro features later, those might become a paid add-on, but what you see today stays free.<\/p>\n<p>Feedback should be easy and frictionless, for the person giving it and the person getting it. <\/p>\n<p>Would love to hear what you think.<br \/>\nKiril<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kiril_dobrev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kiril_dobrev<\/a>&nbsp;Congrats Kiril!<br \/>The idea is great!<\/p>\n<p>Is there a versioning and comparison between?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kiril_dobrev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kiril_dobrev<\/a>&nbsp;great product, love seeing products that solve real problems.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kiril_dobrev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kiril_dobrev<\/a>&nbsp;Congrats. Can you give a pros and cons in comparison to other tools like vimeo.com? That we are using at the moment. Thanks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Pasted a Vimeo link and my reviewer left a note with a sketch in under a minute, no login wall. The Premiere marker export is the kind of feature that quietly saves an hour.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@qualityml\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@qualityml<\/a>&nbsp;This kind of reaction makes me genuinely happy because that was a big focus for us. We really tried to make it as seamless and as frictionless as possible, both for the editor and the people who are reviewing the footage. Nice!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>no hosting because the video already lives on youtube\/vimeo is a smart cut, not a compromise. with no reviewer login, how do you tell whose note is whose?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrewzakonov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrewzakonov<\/a>&nbsp;There&#8217;s and option to simply add your name within the project room and it will populate alongside all your notes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrewzakonov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrewzakonov<\/a>&nbsp; Thanks Andrew &#8211; and yeah, like Bryn said &#8211; you just add your name here and then that little bell icon next to it let&#8217;s you sign up for email notifications for the project (totally optional)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/144162e0-c227-429d-a7da-75e1f6c9ef71.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks amazing!<\/p>\n<p>Was looking for something to give my editor&#8217;s feedback without paying for many features I don&#8217;t need!<\/p>\n<p>Cheers Kiril!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@robbinschuchmann\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@robbinschuchmann<\/a>&nbsp;Awesome, glad to hear it Robbin! Give it a spin \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The no-account approach for reviewers is the right call &#8211; asking clients to sign up somewhere is exactly where this kind of feedback falls apart. One thing I would want to understand about how it works in practice: when multiple people are reviewing the same cut, can I tell who left which comment, or does all the feedback come in without attribution? For a small project with one client it does not matter, but once there are two or three people on the review side, knowing who said what makes responding to specific notes much easier.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Reminds me of Loom videos were the comments can be made on certain timestamps. Good work. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The link model is the right trade, but it hands your accuracy to somebody else&#8217;s player. YouTube seeks to the nearest keyframe and gives you a float in seconds, so a note that reads 04:12 can land a frame or two off by the time it&#8217;s a marker in Resolve. And since you never touch the source file you never learn the true frame rate, where 23.976 against 24 drifts about a frame every 42 seconds, which is the kind of error an editor blames on themselves. Are you asking the editor for frame rate or inferring it from the link?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;you choose your frame rate when exporting markers!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/05925e72-db68-480d-ac59-40f16ac8ab52.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does it support Google Drive hosted videos as well? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ankur_jeswani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankur_jeswani<\/a>&nbsp;Yes it does Ankur, but for best results we recommend Youtube (unlisted), Dropbox, Vimeo etc. Google Drive links can be unpredictable because Drive streams the full original file, so high-bitrate footage may stutter on slower connections.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Kiril, this hits a real sore spot for me. Getting notes that land on the exact moment someone means, without making anyone create an account just to comment, takes so much pain out of the back and forth.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@robin_de_lacroix\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@robin_de_lacroix<\/a>&nbsp;Thanks Robin, that&#8217;s exactly the itch. The account thing was the bit that annoyed me most haha! Would be curious how it holds up on your next round of notes. Do let us know!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is actually how I discovered SceneNote. My team and I are currently working on a video case study, and breaking down video references has always been a painful process\u2014constantly writing down timestamps, taking screenshots, and organizing everything manually. The key words are: it <em>used<\/em> to be \ud83d\ude42<\/p>\n<p>Thanks for building this, @kiril_dobrev. Honestly, I don&#8217;t even know what to nitpick at this point. I&#8217;ll keep using SceneNote over the next few weeks and come back with more detailed feedback. Hopefully, I can help make the product even better.<\/p>\n<p>Added it to my bookmarks already \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alvodsgn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alvodsgn<\/a>&nbsp;Very stoked to hear that Lesha! And please feel free to send any feedback \/ or feature requests so we can keep making this better and better for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/S27YFAZOQBHMAW\" class=\"app-title\">EQK 3.0<\/a><\/p>\n<div class=\"one-liner\">Mac app with dynamic AI Equaliser<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">92<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>EQK 3.0 \u662f\u4e00\u6b3e\u5229\u7528\u52a8\u6001AI\u5b9e\u65f6\u4e3a\u6bcf\u9996\u6b4c\u66f2\u81ea\u52a8\u8c03\u6574\u5747\u8861\u7684Mac\u5e94\u7528\uff0c\u8ba9\u975e\u53d1\u70e7\u53cb\u4e5f\u80fd\u4e0d\u8d39\u5439\u7070\u4e4b\u529b\u4eab\u53d7\u4e2a\u6027\u5316\u8c03\u97f3\uff0c\u65e0\u9700\u5b66\u4e60\u590d\u6742\u53c2\u6570\u6216\u5b89\u88c5\u865a\u62df\u9a71\u52a8\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/095b78cf-d197-4d67-a709-6292c2a88159.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/852d8a08-a1ae-4748-a152-cf1c02d1392e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/49f0f717-0c63-4206-83c0-5845a8b5a50c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/42596a21-f13c-4027-bf5a-fdb7ee4eab07.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/285e9f7c-660a-493e-a55d-a4d754f505d3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Music<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Entertainment<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001AI\u5747\u8861\u5668<\/span><br \/>\n            <span class=\"tag\">\u8033\u673a\u6821\u6b63<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8c03\u97f3<\/span><br \/>\n            <span class=\"tag\">\u7cfb\u7edf\u7ea7\u97f3\u9891<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u667a\u80fd<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u589e\u5f3a<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605<\/span><br \/>\n            <span class=\"tag\">10\u6bb5\u53c2\u91cf\u5747\u8861<\/span><br \/>\n            <span class=\"tag\">FLAC\u64ad\u653e\u5668<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53efAI\u52a8\u6001EQ\u7684\u521b\u610f\uff0c\u4f46\u62c5\u5fe7\u5bf9\u7cbe\u5fc3\u6df7\u97f3\u7684\u4f5c\u54c1\u8fc7\u5ea6\u201c\u4e8c\u6b21\u731c\u6d4b\u201d\uff0c\u9020\u6210\u542c\u89c9\u4e0d\u9002\u3002\u5efa\u8bae\u589e\u52a0\u7535\u5e73\u5339\u914d\u7684\u65c1\u8def\u5f00\u5173\uff0c\u4ee5\u533a\u5206\u542c\u4f17\u662f\u559c\u6b22\u66f2\u7ebf\u8fd8\u662f\u5355\u7eaf\u56e0\u54cd\u5ea6\u53d8\u5927\u800c\u89c9\u5f97\u597d\u542c\u3002\u5f00\u53d1\u8005\u56de\u5e94\u63d0\u4f9b\u4e86\u591a\u79cd\u6a21\u5f0f\uff0c\u5e76\u627f\u8ba4\u90e8\u5206\u66f2\u98ce\u4ecd\u9700\u4f18\u5316\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                EQK\u7684\u5356\u70b9\u5f88\u6027\u611f\u2014\u2014\u201c\u52a8\u6001AI\u5b9e\u65f6\u8c03\u97f3\u201d\uff0c\u8bd5\u56fe\u5c06\u8fc7\u53bb\u9700\u8981\u4e13\u4e1a\u77e5\u8bc6\u548c\u6570\u5c0f\u65f6\u5fae\u8c03\u7684\u5747\u8861\u8c03\u8282\uff0c\u538b\u7f29\u6210\u4e00\u53e5\u201c\u8ba9\u673a\u5668\u66ff\u4f60\u542c\u201d\u3002\u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u5b83\u786e\u5b9e\u89e3\u51b3\u4e86\u4e00\u4e2a\u771f\u95ee\u9898\uff1a\u7edd\u5927\u591a\u6570\u7528\u6237\u4e0d\u77e5\u9053\u6216\u61d2\u5f97\u8c03EQ\uff0c\u800c\u7cdf\u7cd5\u7684\u8033\u673a\u548c\u97f3\u6e90\u662f\u5e38\u6001\u3002\u7528AI\u9010\u79d2\u5206\u6790\u97f3\u9891\u5e76\u4fee\u6b63\uff0c\u662f\u5178\u578b\u7684\u964d\u7ef4\u6253\u51fb\u5f0f\u4f53\u9a8c\u4f18\u5316\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8bc4\u8bba\u51fb\u4e2d\u4e86\u6838\u5fc3\u8f6f\u808b\uff1a\u52a8\u6001\u4ecb\u5165\u7684\u97f3\u8d28\u6b63\u4e49\u6027\u4f55\u5728\uff1f\u5f53AI\u5f00\u59cb\u5b9e\u65f6\u91cd\u7ed8\u9891\u7387\u66f2\u7ebf\uff0c\u5b83\u5b9e\u8d28\u662f\u5728\u4e0e\u6df7\u97f3\u5e08\u7684\u5934\u53f7\u539f\u5219\u2014\u2014\u201c\u4f20\u9012\u521b\u4f5c\u610f\u56fe\u201d\u535a\u5f08\u3002\u5bf9\u4e8e\u91cd\u5ea6\u542c\u8005\uff0c\u4e00\u4e2a\u4f1a\u5728\u4e50\u66f2\u52a8\u6001\u9ad8\u6f6e\u6bb5\u7a81\u7136\u201c\u4fee\u6b63\u201d\u4f4e\u9891\u7684\u5f15\u64ce\uff0c\u6781\u6613\u5272\u88c2\u60c5\u611f\u6c89\u6d78\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0c\u7f3a\u4e4f\u201c\u7535\u5e73\u5339\u914d\u65c1\u8def\u201d\u529f\u80fd\u3002\u8fd9\u4f7fAI\u7684\u6548\u679c\u8bc4\u4f30\u9677\u5165\u903b\u8f91\u95ed\u73af\uff1a\u7528\u6237\u89c9\u5f97\u53d8\u597d\u542c\u4e86\uff0c\u4f462\u5206\u8d1d\u7684\u589e\u76ca\u53ef\u80fd\u624d\u662f\u771f\u51f6\uff0c\u800c\u975e\u7b97\u6cd5\u9ad8\u660e\u3002\u8fd9\u662f\u81ea\u9002\u5e94\u97f3\u9891\u9886\u57df\u7ecf\u5178\u7684\u201c\u54cd\u5ea6\u9a97\u5c40\u201d\uff0c\u5f00\u53d1\u8005\u5982\u679c\u4e0d\u80fd\u901a\u8fc7\u8ba1\u91cf\u5de5\u5177\u5411\u7528\u6237\u8bc1\u660e\u5176\u66f2\u7ebf\u7684\u7edd\u5bf9\u6709\u6548\u6027\uff0c\u4ea7\u54c1\u5c31\u59cb\u7ec8\u5e26\u6709\u201c\u542c\u4e2a\u54cd\u201d\u7684\u6ee4\u955c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6280\u672f\u4e0a\uff0c\u5b83\u89c4\u907f\u4e86\u865a\u62df\u9a71\u52a8\uff0c\u57fa\u4e8emacOS\u539f\u751f\u97f3\u9891\u6355\u83b7\u5b9e\u73b0\u7cfb\u7edf\u7ea7\u8c03\u97f3\uff0c\u8fd9\u662f\u4e00\u6761\u806a\u660e\u4e14\u5e72\u51c0\u7684\u8def\uff1b3,985\u4e2a\u8033\u673a\u6821\u6b63\u914d\u7f6e\u6587\u4ef6\u548c\u5bf9\u672c\u5730FLAC\u6b4c\u8bcd\u64ad\u653e\u5668\u7684\u652f\u6301\uff0c\u663e\u51fa\u4f5c\u8005\u5bf9\u786c\u6838\u73a9\u5bb6\u7684\u91ce\u5fc3\u3002\u4f46\u4ea7\u54c1\u7684\u547d\u95e8\u5728\u4e8e\uff1a100%\u672c\u5730\u8fd0\u884c\u7684AI\u52a8\u6001\u5f15\u64ce\uff0c\u5982\u4f55\u5728\u4e0d\u4f9d\u8d56\u4e91\u7aef\u5927\u6570\u636e\u7684\u60c5\u51b5\u4e0b\uff0c\u9a6f\u670d\u6d77\u91cf\u98ce\u683c\u8fe5\u5f02\u7684\u97f3\u4e50\uff1f\u5f00\u53d1\u8005\u627f\u8ba4\u201c\u6709\u4e9b\u66f2\u98ce\u8868\u73b0\u8fc7\u5ea6\u201d\uff0c\u610f\u5473\u7740\u76ee\u524d\u6a21\u578b\u5bf9\u91d1\u5c5e\u3001\u7535\u5b50\u751a\u81f3\u90e8\u5206\u73b0\u4ee3\u6d41\u884c\u4e50\u7684\u9002\u5e94\u6027\u4ecd\u5b58\u7591\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u6709\u4ef7\u503c\u7684\u90e8\u5206\uff0c\u53ef\u80fd\u662f\u201cper-app\u72ec\u7acbEQ\u201d\u548c\u201ctone desk 10\u6bb5\u53c2\u91cf\u5747\u8861\u5668\u201d\u2014\u2014\u524d\u8005\u628a\u5de5\u4f5c\u573a\u666f\u548c\u5a31\u4e50\u573a\u666f\u5206\u5f00\u8c03\u4f18\uff0c\u540e\u8005\u4e3a\u613f\u610f\u52a8\u624b\u7684\u7528\u6237\u4fdd\u7559\u4e86\u63a7\u5236\u6743\u3002AI\u66f4\u591a\u5e94\u626e\u6f14\u201c\u5feb\u901f\u9884\u8bbe\u63a8\u8350\u8005\u201d\u800c\u975e\u201c\u5b9e\u65f6\u8d8a\u6743\u6df7\u97f3\u5e08\u201d\u3002\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u82e5\u4e0d\u80fd\u89e3\u51b3\u201c\u4e3a\u4f55\u4f60\u7684\u91cd\u6df7\u6bd4\u6211\u5148\u542c\u7684\u539f\u7248\u66f4\u597d\u201d\u8fd9\u4e00\u4fe1\u4efb\u95ee\u9898\uff0c\u6700\u7ec8\u5b83\u5c06\u6c38\u8fdc\u662f\u97f3\u9891\u53d1\u70e7\u53cb\u5c1d\u9c9c\u540e\u6084\u7136\u5378\u8f7d\u7684\u4ea7\u54c1\uff0c\u800c\u975e\u65e5\u5e38\u5fc5\u5907\u7684\u4e00\u73af\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">EQK 3.0<\/span>\n                <\/div>\n<div class=\"comment-content\">EQK is the first Mac app with dynamic AI EQ &#8211; an equalizer that re-tunes itself per song in real time. Give every app its own EQ, headphone correction, and output device. No virtual drivers &#8211; just native macOS audio capture. 10-band parametric Tone Desk, 3,985+ AutoEq headphone profiles, per-app limiter, full signal-chain metering, and a free built-in FLAC player with synced lyrics for the songs that you own. 100% local, no telemetry, no subscription. Tune every app on your Mac.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>EQK began as a way to make sound enhancement through the equaliser accessible beyond audiophiles- to let the rest of us experience music the way the small minority who know the basics already do.<\/p>\n<\/p>\n<p>Most people don&#8217;t know how much difference an EQ tweak can make to their listening experience. Two things kept them out: the technical, formalised structure of every existing EQ app made the first step overwhelming; and the learning curve was steep enough that meaningful benefit only came after real effort.<\/p>\n<\/p>\n<p>EQK solves both. The learning curve, by running an on-device engine that together with Apple Intelligence- dynamically tunes music on the go, learns it side-by-side to apply a more accurate EQ on the second play, and saves the per-song, per-app profile locally. Up to 1,000 songs get their own remembered EQ shape, refreshed every second to twice a second- saved by the app, not downloaded.<\/p>\n<p>The intimidation, by dressing what was otherwise a cerebral process in a UI meant to keep you inside the experience of entertainment, not analysing it.<\/p>\n<\/p>\n<p><strong>v3.0 introduces the Optimiser engine.<\/strong> It scans for broken song profiles, incompatible layouts, and anything else that might break the seamlessness of the app.<\/p>\n<\/p>\n<p>Since a large part of EQK is made by AI, and the whole thing began as a vibe-coded experiment, the Optimiser is a unique answer to what to do with the creative freedom AI gives us in a short amount of time: use it to accelerate the intelligence and working of the dynamic AI EQ engine itself. Some songs may appear over-EQ&#8217;d but the overall response from listeners so far has been phenomenal. The Optimiser doesn&#8217;t touch code, only broken and incompatible app-created data.<\/p>\n<p><a href=\"https:\/\/www.kuja.dev\/eqk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.kuja.dev\/eqk<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A dynamic EQ that reacts to what&#8217;s playing is a nice idea, but it puts you in an awkward spot with anything that was already mastered carefully \u2014 the mastering engineer made specific decisions, and an adaptive curve is second-guessing them in real time.<\/p>\n<p>So what&#8217;s the target? A correction layer for bad source material and cheap output, or an active shaping tool applied to everything? And does it react per-track or continuously within a track \u2014 I&#8217;d guess a curve that moves mid-song would be audible in a way that isn&#8217;t always pleasant, especially on anything with a big dynamic shift.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;The app has various modes to suit everyones needs- Real Time AI engine EQ per second of the song, AI EQ applied to every song, AI recommendations for a static eq applied to all songs, and your regular good old manual EQ.<\/p>\n<p>The target is a broad audience who 1) Want a better sound without the learning curve. 2) Want a hands-free customisable EQ experience. 3) In app correction accounting for headphones + bad source material + user preference as all ears are different.<\/p>\n<p>The app has come a long way since v1 in refining the dynamic eq into a pleasurable experience, but admittedly not all genres are well accounted for and sometimes, the eq could appear to be doing too much but that is constantly being worked on in every update and the reviews so far have been majorly great.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The feature I&#8217;d want most here is a bypass I can hold down, level matched. An EQ that nets even 2 dB of gain sounds better for reasons that have nothing to do with the curve, so if the engine learns from what people keep rather than what they prefer at matched loudness, it&#8217;s learning volume and calling it taste. That&#8217;s the quiet failure mode in adaptive audio, nobody complains because it does sound good, and the listener can&#8217;t tell whether they like the shape or just got used to it. A held bypass at matched RMS is the cheapest thing that keeps the loop honest, and it would give you a real signal on the genres where you say it&#8217;s doing too much.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GGAALKSH272RON\" class=\"app-title\">JusTTY<\/a><\/p>\n<div class=\"one-liner\">A simple native macOS terminal built on Swift and libghostty<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">89<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>JusTTY \u662f\u4e00\u6b3e\u57fa\u4e8e Swift \u548c libghostty \u6784\u5efa\u7684\u6781\u7b80\u539f\u751f macOS \u7ec8\u7aef\uff0c\u4e13\u4e3a\u8ffd\u6c42\u65e5\u5e38\u9ad8\u9891\u4f7f\u7528\u573a\u666f\u4e0b\u6d41\u7545\u6027\u80fd\u4e0e\u4f4e\u8d44\u6e90\u6d88\u8017\u7684\u7528\u6237\u8bbe\u8ba1\uff0c\u89e3\u51b3\u4e86\u4e3b\u6d41\u7ec8\u7aef\u529f\u80fd\u81c3\u80bf\u3001\u6027\u80fd\u635f\u8017\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b558dcb2-ada1-4a67-9987-aa81855ff54d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8d18d536-8371-4894-b9fc-6b91ca9a1933.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7c7ec854-8f0d-4d96-a43b-9d13273aaea1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u7ec8\u7aef<\/span><br \/>\n            <span class=\"tag\">Swift\u539f\u751f\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">libghostty<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u6a21\u62df\u5668<\/span><br \/>\n            <span class=\"tag\">\u6027\u80fd\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u8d44\u6e90\u5360\u7528<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e5\u5e38\u4f7f\u7528<\/span><br \/>\n            <span class=\"tag\">\u65e0Electron<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u5176\u539f\u751f\u6027\u80fd\u4e0e\u7b80\u6d01\u7406\u5ff5\u3002\u6838\u5fc3\u7591\u95ee\u5728\u4e8e\u4e0e Ghostty \u7684\u5dee\u5f02\u5316\uff1a\u5f00\u53d1\u8005\u660e\u786e\u89e3\u91ca JusTTY \u5b9a\u4f4d\u662f\u7cbe\u7b80\u7248\uff0c\u727a\u7272\u9ad8\u7ea7\u529f\u80fd\u6362\u53d6\u4ee3 macOS \u539f\u751f\u4f53\u9a8c\u3002\u6709\u7528\u6237\u5efa\u8bae\u652f\u6301\u72ec\u7acb\u6eda\u52a8\u7f13\u51b2\u533a\u4e0e\u9762\u677f\u5206\u79bb\uff0c\u5f00\u53d1\u8005\u8868\u793a\u8003\u8651\u63a8\u51fa\u201c\u6269\u5c55\u7248\u201d\u4ee5\u6ee1\u8db3\u6b64\u7c7b\u9700\u6c42\uff0c\u4f46\u5f53\u524d\u575a\u6301\u6781\u7b80\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                JusTTY \u7684\u8bde\u751f\uff0c\u672c\u8d28\u4e0a\u662f\u5bf9\u201c\u7ec8\u7aef\u519b\u5907\u7ade\u8d5b\u201d\u7684\u4e00\u6b21\u53cd\u53db\u3002\u5728 Ghostty\u3001iTerm2\u3001Warp \u7b49\u4ea7\u54c1\u75af\u72c2\u5806\u53e0\u5206\u5272\u7a97\u53e3\u3001\u914d\u7f6e\u6587\u4ef6\u3001\u63d2\u4ef6\u7cfb\u7edf\u4e43\u81f3 AI \u52a9\u624b\u7684\u5f53\u4e0b\uff0cJusTTY \u9009\u62e9\u4e86\u4e00\u6761\u6781\u4e3a\u514b\u5236\u4e14\u5145\u6ee1\u8bbe\u8ba1\u539f\u5219\u7684\u8def\u5f84\uff1a\u53ea\u4fdd\u7559\u7ec8\u7aef\u6700\u6838\u5fc3\u7684\u6e32\u67d3\u3001\u6807\u7b7e\u3001\u4e3b\u9898\u4e0e\u7a97\u53e3\u7ba1\u7406\uff0c\u5176\u4f59\u5168\u90e8\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\uff08\u5982 tmux\uff09\u3002\u8fd9\u770b\u4f3c\u201c\u7b80\u964b\u201d\uff0c\u5b9e\u5219\u7cbe\u51c6\u6355\u6349\u4e86\u4e00\u7c7b\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u9700\u6c42\u2014\u2014\u5927\u91cf\u5f00\u53d1\u8005\u5e76\u4e0d\u9700\u8981\u4e00\u53f0\u201c\u745e\u58eb\u519b\u5200\u201d\uff0c\u4ed6\u4eec\u53ea\u662f\u9700\u8981\u4e00\u4e2a\u542f\u52a8\u8fc5\u901f\u3001\u8dd1\u6ee1\u4e00\u5929\u4e0d\u89c9\u5f97\u5361\u987f\u7684\u201c\u9524\u5b50\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u4ef7\u503c\u5185\u6838\u5728\u4e8e\u201c\u8f6f\u4ef6\u51cf\u8d1f\u201d\u3002\u901a\u8fc7\u76f4\u63a5\u8c03\u7528 libghostty \u7684 Metal \u6e32\u67d3\u7ba1\u7ebf\uff0c\u5e76\u6452\u5f03 Electron \u7b49\u8fd0\u884c\u65f6\u6c61\u67d3\uff0cJusTTY \u5728\u6027\u80fd\u4e0a\u5929\u7136\u8d85\u8d8a\u7edd\u5927\u591a\u6570\u7ade\u54c1\u3002\u4f46\u8fd9\u4e5f\u66b4\u9732\u4e86\u5b83\u7684\u5929\u82b1\u677f\uff1a\u5b83\u672c\u8d28\u4e0a\u662f Ghostty \u7684\u4e00\u4e2a\u201c\u4f4e\u914d\u76ae\u80a4\u201d\uff0c\u6280\u672f\u62a4\u57ce\u6cb3\u6781\u4f4e\u3002\u4e00\u65e6 Ghostty \u5b98\u65b9\u63a8\u51fa\u66f4\u8f7b\u91cf\u7684\u914d\u7f6e\u65b9\u6848\uff0c\u6216 Apple \u5728\u7ec8\u7aef\u4e0a\u53d1\u529b\uff0cJusTTY \u7684\u751f\u5b58\u7a7a\u95f4\u5c06\u8fc5\u901f\u6536\u7a84\u3002\u6b64\u5916\uff0c\u6781\u5ea6\u514b\u5236\u7684\u529f\u80fd\u96c6\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u6210\u4e3a\u91cd\u5ea6\u7528\u6237\uff08\u4f8b\u5982\u65e5\u5e38\u4f7f\u7528\u591a\u9762\u677f\u3001\u8fdc\u7a0b\u8fde\u63a5\u7ba1\u7406\uff09\u7684\u552f\u4e00\u9009\u62e9\uff0c\u8fd9\u4e5f\u89e3\u91ca\u4e86\u4e3a\u4f55\u5f00\u53d1\u8005\u8003\u8651\u63a8\u51fa\u201cJusTTY Extended\u201d\u6765\u5206\u5316\u7528\u6237\u7fa4\u2014\u2014\u8fd9\u79cd\u201c\u4ed8\u8d39\u89e3\u9501\u529f\u80fd\u201d\u7684\u8def\u7ebf\uff0c\u5bb9\u6613\u6d88\u8017\u65e9\u671f\u6781\u7b80\u4e3b\u4e49\u62e5\u8db8\u7684\u4fe1\u4efb\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u7b56\u7565\u770b\uff0cJusTTY \u6210\u529f\u901a\u8fc7\u201c\u51cf\u6cd5\u201d\u5236\u9020\u4e86\u8bb0\u5fc6\u70b9\uff0c\u4f46\u80fd\u5426\u4ece\u5c0f\u4f17\u7684\u201c\u6e05\u51c0\u5de5\u5177\u201d\u8dc3\u5347\u4e3a\u4e3b\u6d41\u9009\u62e9\uff0c\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u201c\u8db3\u591f\u597d\u7528\u201d\u4e0e\u201c\u8db3\u591f\u6709\u7528\u201d\u4e4b\u95f4\u627e\u5230\u90a3\u4e2a\u66f4\u7cbe\u51c6\u7684\u5e73\u8861\u70b9\u3002\u5426\u5219\uff0c\u5b83\u6216\u8bb8\u4f1a\u6210\u4e3a macOS \u5f00\u53d1\u8005\u5de5\u5177\u7bb1\u91cc\u4e00\u6b3e\u503c\u5f97\u6536\u85cf\u7684\u201c\u827a\u672f\u54c1\u201d\uff0c\u800c\u975e\u6bcf\u5929\u90fd\u5728\u7528\u7684\u201c\u751f\u4ea7\u7ebf\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">JusTTY<\/span>\n                <\/div>\n<div class=\"comment-content\">A simple native macOS terminal built with Swift and libghostty. Minimal be design &#8211; suited for everyday use, just not packed with the bells and whistles power users expect.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love that you went native with Swift instead of wrapping something electron-based. That kind of focus on simplicity and performance over feature bloat is exactly what most people actually need day-to-day.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>There&#8217;s something genuinely calming about a tool that decides to stay small and fast on purpose. Filip, this feels like the kind of thing I&#8217;d quietly stop noticing and just keep reaching for every day.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Why should I switch from Ghostty? I can see graphical preferences, but what&#8217;s the major differentiator? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mlitwiniuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mlitwiniuk<\/a>&nbsp;JusTTY is intentionally not full Ghostty. It wraps libghostty\u2019s Metal\/PTY core in a small native SwiftUI app aimed at everyday shell use: tabs, windows, themes, fonts, padding\/size, and a short fixed shortcut set. Ghostty stays the power-user terminal (splits, inspector, rich config\/profiles, remappable binds, etc.). JusTTY explicitly leaves those out. So the pitch isn\u2019t &#8220;better than Ghostty&#8221;, it\u2019s: same solid rendering\/shell stack, fewer knobs, macOS-native chrome, and a config surface that\u2019s small enough to ignore. If you want Ghostty\u2019s depth, staying on Ghostty is the right choice, but if you want a simpler app that still feels fast because it\u2019s Ghostty underneath, JusTTY is that.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Native macOS apps built with libghostty are exactly what I&#8217;ve been hoping someone would ship. One thing that would make me switch from iTerm2 full time: support for per-pane scrollback buffers with the ability to detach a pane into its own window. Would be great for keeping long-running logs handy while working in another session.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@monetizemax\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@monetizemax<\/a>&nbsp;Hey thanks for the suggestion. I am still thinking on what to include as a feature. A large scrollback is already supported by default by libghostty, but adding multi-pane support in a single tab is something I am not sure about. I want to keep things minimal. Maybe I will create a separate build with extra features (JusTTY extended) and add extra features like this.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thanks for sharing. What would you say are the &#8220;selling points&#8221; of this terminal emulator?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@maciej_baron\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maciej_baron<\/a>&nbsp;The main selling points are performance, resource usage and minimal bloat. The app gives you just the basics of the terminal (visual control with themes and colorschemes and window control with tabs, starting location and padding). I honestly think that the rest should be added with software, for example if you want multiplexing you can always use tmux but not everyone need that. Also, making it native removes the overhead of additional frameworks and runtimes (e.g. Electron), which can reduce resource usage and improve performance.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love seeing more native macOS dev tools built with Swift! Terminal performance makes or breaks the daily workflow.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zeo81\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zeo81<\/a>&nbsp;Yeah as a dev terminal performance is very important. I also hate that many terminal apps add as many features as possible without thinking of how it would impact the performance or resource cost of it. Also native is always best in my opinion.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#17<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GIDE6XV47GLRQI\" class=\"app-title\">CellCog<\/a><\/p>\n<div class=\"one-liner\">Hire AI employees that form teams and manage each other<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">42<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CellCog \u8ba9\u7528\u6237\u901a\u8fc7\u7b80\u5355\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u5373\u53ef\u201c\u96c7\u4f63\u201d\u5177\u5907\u8bb0\u5fc6\u3001\u8f6e\u73ed\u548c\u4efb\u52a1\u770b\u677f\u7684AI\u5458\u5de5\uff0c\u5b83\u4eec\u80fd\u81ea\u5df1\u7ec4\u6210\u56e2\u961f\u3001\u4e92\u76f8\u7ba1\u7406\u5e76\u6301\u7eed\u5de5\u4f5c\uff0c\u89e3\u51b3\u4f20\u7edfAI\u5de5\u5177\u7f3a\u4e4f\u6301\u4e45\u6027\u548c\u81ea\u4e3b\u6027\u7684\u75db\u70b9\uff0c\u5c06AI\u4ece\u4e00\u6b21\u6027\u5de5\u5177\u5347\u7ea7\u4e3a\u771f\u6b63\u7684\u6570\u5b57\u540c\u4e8b\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/52d0effa-125a-4d0e-be5f-897038a308aa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/71f2e64a-f23c-4d09-852a-f8e3d5d26214.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c5f6738e-89ab-4948-9b9b-3bc15219df80.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3a5ca814-f8cf-4dd3-9580-90ed8a2ab653.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a75b2e8e-7f97-46a9-97fa-c9de43ef6369.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/75caf0b8-1717-48da-9349-9582d5861e09.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/a32fdc94-2d4c-41fc-aa8e-8a3780ca49df.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/DblhSVa5WPo\"><source src=\"https:\/\/youtu.be\/DblhSVa5WPo\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5458\u5de5<\/span><br \/>\n            <span class=\"tag\">AI\u56e2\u961f<\/span><br \/>\n            <span class=\"tag\">\u81ea\u4e3b\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u591a\u4ee3\u7406\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u6df1\u5ea6\u7814\u7a76<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u770b\u677f<\/span><br \/>\n            <span class=\"tag\">\u8bb0\u5fc6\u6301\u4e45\u5316<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u89e3\u51b3\u5de5\u4f5c\u6d41\u95ee\u9898\u7684\u6f5c\u529b\uff0c\u597d\u5947\u5982\u4f55\u907f\u514d\u91cd\u590d\u5de5\u4f5c\u4e0e\u51b3\u7b56\u51b2\u7a81\u4ee5\u53ca\u5931\u8bef\u540e\u7684\u5ba1\u6279\u673a\u5236\uff1b\u8fd8\u6709\u4eba\u5bf9\u6bd4\u5176\u4e0eClaude\u81ea\u5efa\u65b9\u6848\u7684\u4f18\u52a3\uff0c\u5e76\u5c31\u76d1\u7ba1\u5408\u89c4\u3001\u8bb0\u5fc6\u9650\u5236\u4e0e\u6027\u80fd\u4f18\u5316\u63d0\u51fa\u7591\u95ee\uff1b\u521b\u59cb\u4eba\u5728\u56de\u590d\u4e2d\u5f3a\u8c03\u4e86\u4efb\u52a1\u5ba1\u6279\u3001\u5b89\u5168\u8fb9\u754c\u548c\u53ef\u5ba1\u8ba1\u6027\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                CellCog\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u518d\u505a\u4e00\u4e2a\u201c\u66f4\u806a\u660e\u7684\u804a\u5929\u673a\u5668\u4eba\u201d\uff0c\u800c\u662f\u8bd5\u56fe\u91cd\u65b0\u5b9a\u4e49\u201c\u5458\u5de5\u201d\u8fd9\u4e2a\u6982\u5ff5\u3002\u5b83\u6293\u4f4f\u4e86\u5f53\u524dAI Agent\u9886\u57df\u6700\u81f4\u547d\u7684\u4e24\u4e2a\u75db\u70b9\uff1a\u91d1\u9c7c\u822c\u7684\u8bb0\u5fc6\u548c\u88ab\u52a8\u7b49\u5f85\u6307\u4ee4\u7684\u201c\u624b\u52a8\u6863\u201d\u6a21\u5f0f\u3002\u901a\u8fc7\u5f15\u5165\u201c\u89d2\u8272-\u8bb0\u5fc6-\u8f6e\u73ed-\u56e2\u961f\u201d\u8fd9\u4e00\u5957\u73b0\u5b9e\u7ba1\u7406\u6846\u67b6\uff0cCellCog\u6210\u529f\u5c06AI\u4ece\u4e00\u4e2a\u9700\u8981\u4eba\u7c7b\u4e0d\u65ad\u6295\u5582\u548c\u786e\u8ba4\u7684\u201c\u5b9e\u4e60\u751f\u201d\uff0c\u5347\u7ea7\u4e3a\u5177\u5907\u4e00\u5b9a\u81ea\u4e3b\u6027\u548c\u8fde\u7eed\u6027\u7684\u201c\u6b63\u5f0f\u5de5\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u51b7\u9759\u770b\u5f85\uff0c\u517642\u7968\u7684\u8f83\u4f4e\u70ed\u5ea6\u4e5f\u4fa7\u9762\u53cd\u6620\u4e86\u5e02\u573a\u7684\u8c28\u614e\u3002\u62fc\u591a\u591a\u5f0f\u7684\u201cA\u7ed9B\u6d3e\u6d3b\uff0cB\u7ed9A\u6c47\u62a5\u201d\u7684\u6240\u8c13\u201c\u56e2\u961f\u81ea\u4e3b\u7ba1\u7406\u201d\uff0c\u572810-15\u4eba\u7684\u5c0f\u89c4\u6a21\u5185\u6216\u8bb8\u53ef\u884c\uff0c\u4e00\u65e6\u6269\u5c55\u81f3\u767e\u5343\u7ea7\uff0c\u4fe1\u606f\u5197\u4f59\u548c\u51b3\u7b56\u51b2\u7a81\u7684\u4ee3\u6570\u7ea7\u589e\u957f\u5c06\u662f\u5176\u672a\u7ecf\u9a8c\u8bc1\u7684\u963f\u5580\u7409\u65af\u4e4b\u8e35\u3002\u521b\u59cb\u4eba\u58f0\u79f0\u201cAI\u7ec4\u7ec7\u5728\u8fd9\u4e24\u70b9\u4e0a\u4f1a\u6bd4\u4eba\u7c7b\u505a\u5f97\u66f4\u597d\u201d\uff0c\u8fd9\u66f4\u50cf\u662f\u4e00\u4e2a\u9700\u8981\u957f\u671f\u9a8c\u8bc1\u7684\u4ea7\u54c1\u613f\u666f\uff0c\u800c\u975e\u5f53\u524d\u53ef\u4ea4\u4ed8\u7684\u80fd\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u5176\u201c\u81ea\u6211\u9a6f\u5316\u201d\u7684\u58c1\u5792\u2014\u2014\u521b\u59cb\u4eba\u81ea\u8eab\u516c\u53f8\u5b8c\u5168\u8fd0\u884c\u5728\u8be5\u5e73\u53f0\u4e0a\uff0c\u8fd9\u79cd\u201c\u5403\u81ea\u5df1\u7684\u72d7\u7cae\u201d\u7684\u6df1\u5ea6\u4e0d\u4ec5\u5e26\u6765\u66f4\u5f3a\u7684\u4ea7\u54c1\u53cd\u9988\u95ed\u73af\uff0c\u4e5f\u63d0\u4f9b\u4e86\u6781\u5177\u8bf4\u670d\u529b\u7684\u4fe1\u4efb\u80cc\u4e66\u3002\u5bf9\u4e2d\u5c0f\u4f01\u4e1a\u800c\u8a00\uff0c\u7528\u6781\u4f4e\u7684\u8fb9\u9645\u6210\u672c\u83b7\u5f97\u4e00\u4e2a7&#215;24\u5c0f\u65f6\u5de5\u4f5c\u3001\u81ea\u5e26\u8bb0\u5fc6\u4e14\u4e0d\u4f1a\u8df3\u69fd\u7684\u201c\u6570\u5b57\u6253\u5de5\u4eba\u201d\uff0c\u65e0\u7591\u5177\u6709\u5de8\u5927\u7684\u6548\u7387\u8bf1\u60d1\u3002\u7136\u800c\uff0c\u5bf9\u4e8e\u201cAI\u5458\u5de5\u201d\u6240\u5f15\u53d1\u7684\u6570\u636e\u5b89\u5168\u3001\u5408\u89c4\u9519\u4f4d\uff08\u7279\u522b\u662f\u53d7\u76d1\u7ba1\u884c\u4e1a\uff09\u548c\u201c\u8d23\u4efb\u5f52\u5c5e\u201d\u7b49\u7269\u7406\u4e16\u754c\u95ee\u9898\uff0cCellCog\u7684\u201c\u4e09\u5c42\u63a7\u5236\u201d\u673a\u5236\u4ecd\u505c\u7559\u5728\u201c\u6280\u672f\u627f\u8bfa\u201d\u5c42\u9762\uff0c\u8fdc\u672a\u5230\u6cd5\u5f8b\u548c\u5546\u4e1a\u4fdd\u9669\u80fd\u8986\u76d6\u7684\u6210\u719f\u9636\u6bb5\u3002\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u662f\u4e00\u4e2a\u89e3\u51b3\u201c\u4eba\u673a\u534f\u540c\u201d\u6548\u7387\u95ee\u9898\u7684\u6f02\u4eae\u5de5\u7a0b\u65b9\u6848\uff0c\u4f46\u8ddd\u79bb\u6210\u4e3a\u98a0\u8986\u201c\u7ec4\u7ec7\u7ba1\u7406\u201d\u7684\u53ef\u9760\u5546\u4e1a\u57fa\u7840\u8bbe\u65bd\uff0c\u8fd8\u6709\u4e00\u6bb5\u5e03\u6ee1\u96f7\u533a\u7684\u8def\u8981\u8d70\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">CellCog<\/span>\n                <\/div>\n<div class=\"comment-content\">Hire AI employees for any role you can describe in a prompt. Each has an inbox, memory, shifts, and a task board \u2014 built on the super-agent that&#8217;s #1 on Deep Research Bench (July 2026). They form teams, onboard and manage each other. A working workforce in days, all through prompts.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Nitish, founder of CellCog, and the only human at my company.<\/p>\n<p>Rhea runs growth. Maeve runs marketing. Reese leads sales. They&#8217;re AI employees, and they planned the launch you&#8217;re reading right now.<\/p>\n<p>Why we built this: every &#8220;AI agent&#8221; I tried had the same problem.<\/p>\n<p>\u2022 Impressive demo, goldfish memory. Nothing persists between sessions.<br \/>\u2022 No ownership. You end up project-managing your own &#8220;autonomous&#8221; tools.<br \/>\u2022 A chat window is not a coworker. Nobody&#8217;s on it when you&#8217;re not.<\/p>\n<p>What makes an AI employee different:<\/p>\n<p>1. You hire them for a ROLE: marketing, sales, growth, support. They get a name, an email inbox, a task board, and working shifts.<br \/>2. They work between your conversations. Real shifts with a clock-in, a wind-down, and a handover. You wake up to a shift report.<br \/>3. They don&#8217;t reset. Shift 50 remembers the decisions from shift 1. They form teams, onboard and manage each other.<\/p>\n<p>Two proofs, because this space is full of claims:<\/p>\n<p>\u2192 The engine: #1 on Deep Research Bench (July 2026): <a href=\"https:\/\/huggingface.co\/spaces\/muset-ai\/DeepResearch-Bench-Leaderboard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/huggingface.co\/spaces\/muset-ai\/DeepResearch-Bench-Leaderboard<\/a><br \/>\u2192 The company: CellCog is run by me and my AI team. Live org chart, real shift counts: <a href=\"https:\/\/cellcog.ai\/ai-organization?utm_source=producthunt&amp;utm_medium=listing&amp;utm_campaign=launch_jul29\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>CellCog AI Org<\/strong><\/a><\/p>\n<p>And you stay in control: visible task boards, approvals for anything risky, nothing hidden.<\/p>\n<p>Who it&#8217;s for: founders and small teams who need a role filled, but a $5,000+\/mo hire (plus months of recruiting and onboarding) isn&#8217;t happening. An AI employee onboards in minutes, costs a fraction of that, and is on the job today.<\/p>\n<p>\ud83c\udf81 Launch-day offer (July 29 only, new sign-ups): the first 200 accounts that sign up and hire their first AI employee get that employee&#8217;s first shift on us. That&#8217;s approximately $25 in credits, enough to watch them onboard, work, and report back, end to end. After that, refill to keep them working.<\/p>\n<p>Getting started takes about 2 minutes:<\/p>\n<p>1. Sign up free, no credit card needed (every account starts with 200 free credits): <a href=\"https:\/\/cellcog.ai?utm_source=producthunt&amp;utm_medium=listing&amp;utm_campaign=launch_jul29\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">cellcog.ai<\/a><br \/>2. Open AI Employees.<br \/>3. Hire: pick a predefined role, or just describe what you need in plain words.<br \/>4. Your employee introduces themselves and starts their first shift.<\/p>\n<p>I&#8217;ll be here all day answering everything: feedback, hard questions, skepticism especially welcome. Tell me, what role would you hire first, and what would stop you from trusting an AI with it? \ud83d\udc47<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations to the entire team! \u2764\ufe0f\ud83c\udf89I think the idea of AI employees with memory, shifts, and collaboration has a lot of potential. Looking forward to seeing how businesses put it to use. \ud83d\udc4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sejal_asnani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sejal_asnani<\/a>&nbsp;Thanks for you support Sejal!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>ai employe hiring is really becoming a trend. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@istiakahmad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@istiakahmad<\/a>&nbsp;Thanks, Istiak! It really is becoming a category; our bet is that the winners will be the ones actually running their own company on it, not just selling it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">This feels like one of those products that\u2019s solving workflow problems instead of simply adding AI for the sake of it.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abod_rehman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abod_rehman<\/a>&nbsp;I think its one layer above workflow as well, closer to OpenClaw or Hermes but much much easier setup.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the concept. Question for the team: what happens if an AI employee makes a mistake on something important? How do approvals work?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gautamsiddharth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gautamsiddharth<\/a>&nbsp;AI employees would classify all commands they want to run on your computer, browser, or personal tools. For dangerous commands, they will send them to you for approval. If you are not in front of your computer, they will require pre-approval in written form (via email, in the chat) for example, one of the pre-approvals I&#8217;ve given to our outreach AI employees is that they can send up to 10 emails in a day, not more than that. And now this unblocks them from continuing to send emails when I&#8217;m not around.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nitish_garg4\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"nitish_garg4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitish_garg4<\/a> This is a fascinating approach to AI agents. I\u2019m curious-how do AI employees coordinate with each other without creating duplicate work for conflicting decisions <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dipanshu_kushwaha5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipanshu_kushwaha5<\/a>&nbsp;That&#8217;s an amazing question. This problem exists even in human organizations. Duplicate work and conflict in decisions was one of the major problems I&#8217;ve seen in human organizations. In organizations that were very proactive in communication, they made fewer of these mistakes.<\/p>\n<p>In AI employees, they are much more proactive in these conversation. <\/p>\n<p>Currently, we do not have that issue because the organization is not that big. The current organization is 10 to 15 employees, so we are not seeing much duplication issue. When we will reach the scale of 1000s of ai employee this problem will start to emerge<\/p>\n<p>But our current understanding is that AI organizations are going to do better than human organizations on both of these counts: duplication of work and conflict in decisions. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Cool use case. What is the advantage of using cellcog agents Vs creating your own using Claude \/ jetski etc.,? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sneha_rachel_mathew\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sneha_rachel_mathew<\/a>&nbsp;Great question \u2014 you absolutely can build your own with Claude, and technically the ceiling is similar. The difference is what you spend your time on.<\/p>\n<p>Building your own, YOU become the infrastructure: memory between sessions, scheduling, an inbox, a task board, approvals, handovers between runs \u2014 that&#8217;s weeks of glue code, and you maintain it forever. And you&#8217;re still the project manager: you start every session, re-explain context, check the output.<\/p>\n<p>Hiring here, all of that exists on day one. You describe the role in a prompt; the employee names itself, sets up its own workstreams, works shifts while you&#8217;re away, and reports back. When you hire a second one, they coordinate with each other \u2014 that part is genuinely hard to DIY.<\/p>\n<p>Fastest way to see it: my whole company runs this way (I&#8217;m the only human \u2014 live org chart with real shift counts on our site).<\/p>\n<p>Where credit is due: some of the employee primitives (email, task boards, shifts) were inspired by Polsia \u2014 good ideas deserve acknowledging. The engine underneath is our own 9 months of multi-agent protocol work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The shift reports really caught my attention. Knowing exactly what happened while you were away makes the workflow feel much closer to working with a real teammate.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@deepaksingh09\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@deepaksingh09<\/a>&nbsp;Interesting catch. I designed shift reports the way I used to give daily updates to stakeholders on high-stakes projects: what got done, what&#8217;s next, what I need from you. In the spirit of transparency though, they can get verbose at times. We&#8217;re still tuning the right balance between &#8220;complete&#8221; and &#8220;scannable.&#8221; Curious what you&#8217;d want on day one: a three-line summary or the full detail?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Brilliant product.. user for quite some time now<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shine_samuel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shine_samuel<\/a>&nbsp;Thank you. Hearing this from someone who&#8217;s used it for a while means a lot.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Nitish, looks very cool! <br \/>Sorry If you&#8217;ve already answered this, but what capabilities do the agents have to carry out work &#8211; like can they operate a browser either via MCP or even a normal desktop browser?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\"><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8b501b00-1e6e-4a39-b928-b7b94cdfcb2b.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" alt=\"Image\" style=\"max-width: 100%\"><\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@shask\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shask<\/a>&nbsp;You can connect your own computer, your own browser and your 1,000+ tools, and our AI Employee would be able to take action on your own browser, your own computer, or those tools. This entire Product Hunt application was actually filled by  an AI Employee, the Head of Growth, through our browse feature. On top of it, every AI employee gets their own personal computer, which is separate from all of your things. Now an AI employee could work on two computers: one if you connect your co-work and another, their own computer.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nitish_garg4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitish_garg4<\/a>&nbsp;novel takes on having AI employees work for you. A few questions:<\/p>\n<ol>\n<li>\n<p>Is there a limit to what all an employee can save in memory?<\/p>\n<\/li>\n<li>\n<p>Do you prioritize what is more important to remember in memory?<\/p>\n<\/li>\n<li>\n<p>Do you have insights on how many mistakes they make initially vs later when they have learnt from their AI teacher\/peers?<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tarun_barthwal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarun_barthwal<\/a>&nbsp;Great questions,<\/p>\n<p>1.\u2060 \u2060Memory limit: memory lives as structured documents in the employee&#8217;s workspace and persists across every shift, so storage isn&#8217;t the constraint. The real limit is what it holds &#8220;in mind&#8221; during one working session; when that fills, it writes a handover note, and the next shift picks up seamlessly. Like a person: they don&#8217;t recall everything at once; they know where it&#8217;s written down.<\/p>\n<\/p>\n<p>2.\u2060 \u2060Prioritization: yes, and it&#8217;s the employee&#8217;s own job. At the end of every shift, it consolidates durable learnings into long-term memory, corrects stale notes, and hands over what matters right now to the next shift.<\/p>\n<\/p>\n<p>3.\u2060 \u2060Mistakes: My honest answer is no clean public metric yet. But running our own company on them, we see employees write their mistakes AND the fix into memory, so the same mistake rarely survives multiple shifts.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">This is something I think would be such a time-saver, especially as a solo founder. <\/p>\n<p>Do the agents have a feedback loop, or how do they confirm their work is successful? And how would CellCog compare to tools as Polsia?<\/p>\n<p>Either way, happy to try it out!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@max_nordstrom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@max_nordstrom<\/a>&nbsp;Glad you know about Polsia few core difference are<br \/>1. You can create any number of different roles and they can talk to each other just like human teams<br \/>2. Non slop and build for production grade work<br \/>3. Has most complex features implemented like Cowork, Browse, 1000+ personal tools, frontier coding agent, #1 in deep research bench, frontier multimedia agent. <br \/>4. First class support for Cold Outreach, Tasks, Emails<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nitish_garg4\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"nitish_garg4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitish_garg4<\/a> Super exciting. We are in a highly regulated industry (consumer finance), how do we place hard limiters on what actions these AI employees can take, so as to prevent any regulatory findings?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jainesh_sinha\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jainesh_sinha<\/a>&nbsp;Great question \u2014 control is the design center of the whole system.<\/p>\n<p>Three layers:<\/p>\n<p>1. Risk-classified actions. Every action an AI employee takes on your systems is classified (safe \/ moderate \/ dangerous). You set the threshold \u2014 anything above it pauses and waits for human approval. Irreversible or externally visible actions (sending email, writing to production, spending money) sit above the default line.<\/p>\n<p>2. Explicit, bounded permissions. Employees don&#8217;t accumulate powers silently. You grant standing approvals for specific classes of work (&#8220;up to N outreach emails\/day&#8221;), scoped and revocable anytime. No approval = the employee files a request and waits. You can also grant read-only access to sensitive systems \u2014 my own employees have read-only on our production DB, no exceptions.<\/p>\n<p>3. Full audit trail. Every task lives on a board you watch, every action is logged, and every shift ends with a written report. You can reconstruct exactly what an employee did and why, after the fact.<\/p>\n<p>So for consumer finance: low auto-approve threshold + read-only on regulated systems + every customer-facing action gated on human sign-off. The employee does the work; your people keep the pen.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nitish_garg4\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"nitish_garg4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitish_garg4<\/a> We already have a human team employed. Can we use these AI guys to augment our capability (in existing departments) and share org data with them to be able to contribute on the same?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohit_khandelwal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohit_khandelwal<\/a>&nbsp;Yes, that&#8217;s exactly the augmentation case. The easiest way to find out if they&#8217;ll add value:<\/p>\n<p>1. Find roles that are understaffed or underperforming<\/p>\n<p>2. Find the human manager who would supervise that role if it were a human hire<\/p>\n<p>3. Have that manager write the job description as a simple prompt<\/p>\n<p>4. Give the employee access to org data through cowork, browse, and connected tools<\/p>\n<p>5. Judge them on the same outcomes you&#8217;d judge a human hire on<\/p>\n<p>In my case I hired:<\/p>\n<p>1. Head of Growth (Rhea)<\/p>\n<p>2. Head of Marketing<\/p>\n<p>3. Chief of Staff<\/p>\n<p>4. Principal Engineer<\/p>\n<p>5. Sales team (6 total)<\/p>\n<p>My prompt for the first one was literally: &#8220;I need a head of growth for <a href=\"http:\/\/cellcog.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">cellcog.ai<\/a> and I am founder and CEO.&#8221; She named herself Rhea. She has done more since I hired her than a team of five typically does in a month, including planning this Product Hunt listing.<\/p>\n<p>They work alongside humans, not instead of them. The human managers stay in the loop through task boards and approvals.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/D34MTVALXPRBOK\" class=\"app-title\">ResumizeAI<\/a><\/p>\n<div class=\"one-liner\">Take full control of your job hunt<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">42<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ResumizeAI\u8ba9\u7528\u6237\u53ea\u9700\u4e00\u6b21\u5f55\u5165\u4e2a\u4eba\u7ecf\u5386\uff0c\u5373\u53ef\u9488\u5bf9\u4efb\u610f\u5c97\u4f4d\u62db\u8058\u4fe1\u606f\uff0c\u7531AI\u5728\u6570\u79d2\u5185\u81ea\u52a8\u751f\u6210\u91cf\u8eab\u5b9a\u5236\u7684\u7b80\u5386\u548c\u6c42\u804c\u4fe1\uff0c\u5f7b\u5e95\u7ec8\u7ed3\u6d77\u6295\u7b80\u5386\u65f6\u7e41\u7410\u7684\u4eba\u5de5\u4fee\u6539\u82e6\u5f79\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d895663c-98d5-4efb-b3fc-24565c4ac233.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d0fc6872-7029-4c8c-a5a8-f203d450e802.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/46b25b86-6981-46e6-991f-6f5f7192482b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/66bb68a9-0660-463e-939a-9e9bfbd46638.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/765627a2-5d17-4615-a3c0-1049979562d2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b97f8f2e-9899-45c0-823a-99228f871289.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9ac58bc9-6eac-41f0-bb5b-4a4779591acc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fa6b0493-c6e0-4fef-b290-65aa73441515.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/a9edf1ab-49b2-4e87-901b-386c0d47b539.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/ANy455VSCaU\"><source src=\"https:\/\/youtu.be\/ANy455VSCaU\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Hiring<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7b80\u5386\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6c42\u804c\u4fe1\u5b9a\u5236<\/span><br \/>\n            <span class=\"tag\">\u5c97\u4f4d\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u6c42\u804c\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u804c\u4f4d\u8ddf\u8e2a<\/span><br \/>\n            <span class=\"tag\">PDF\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u5728\u7ebf\u4e2a\u4eba\u4e3b\u9875<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u730e\u4e0a\u7ebf<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5efa\u8bae\u589e\u52a0\u5185\u7f6e\u7684\u5c97\u4f4d\u6295\u9012\u8ffd\u8e2a\u5668\u3002\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u8be5\u529f\u80fd\u5df2\u5b58\u5728\uff08\u542b\u72b6\u6001\u7ba1\u9053\u3001\u7b14\u8bb0\u53ca\u9644\u4ef6\uff09\uff0c\u5e76\u8865\u5145\u4e86\u5f53\u524d\u7f3a\u5931\u7684\u770b\u677f\u89c6\u56fe\u4e0e\u8ddf\u8fdb\u63d0\u9192\u529f\u80fd\uff0c\u540c\u65f6\u9080\u8bf7\u7528\u6237\u5728\u8d85\u8fc730\u4e2a\u804c\u4f4d\u7684\u89c4\u6a21\u4e0b\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                ResumizeAI\u5207\u4e2d\u7684\u662f\u6c42\u804c\u6d41\u7a0b\u4e2d\u6700\u666e\u904d\u3001\u4e5f\u6700\u8017\u65f6\u7684\u201c\u526a\u5200\u5dee\u201d\u75db\u70b9\u2014\u2014\u6c42\u804c\u8005\u62e5\u6709\u771f\u5b9e\u7ecf\u5386\uff0c\u4f46\u5728\u6bcf\u4efd\u5c97\u4f4d\u9762\u524d\u90fd\u9700\u8981\u91cd\u590d\u505a\u201c\u7ffb\u8bd1\u201d\u5de5\u4f5c\u3002\u4ea7\u54c1\u5c06\u201c\u4e00\u6b21\u5f55\u5165\u3001\u591a\u6b21\u9002\u914d\u201d\u903b\u8f91\u5c01\u88c5\u5f97\u76f8\u5f53\u5b8c\u6574\uff0c\u4ece\u7b80\u5386\u5230\u6c42\u804c\u4fe1\u4e00\u952e\u5bfc\u51fa\uff0c\u9644\u5e26URL\u4e2a\u4eba\u4e3b\u9875\uff0c\u5f62\u6210\u4e86\u4e00\u5957\u8f7b\u91cf\u5316\u4f46\u95ed\u73af\u7684\u201c\u6295\u9012\u5de5\u5382\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u5e76\u672a\u771f\u6b63\u6253\u7834AI\u7b80\u5386\u8d5b\u9053\u957f\u671f\u5b58\u5728\u7684\u4fe1\u4efb\u74f6\u9888\u3002\u5f00\u53d1\u8005\u81ea\u5df1\u4e5f\u5f3a\u8c03\u201c\u8f93\u51fa\u5fc5\u987b\u8bda\u5b9e\u4e14\u5177\u4f53\u201d\uff0c\u6070\u6070\u8bf4\u660e\u8fd9\u7c7b\u5de5\u5177\u8d70\u5411\u7528\u6237\u65f6\u6700\u5927\u7684\u654c\u4eba\u4e0d\u662f\u529f\u80fd\u7f3a\u5931\uff0c\u800c\u662f\u751f\u6210\u5185\u5bb9\u201c\u4e00\u773c\u5047\u201d\u3002\u5f53HR\u6bcf\u5929\u9605\u904dAI\u7f8e\u5316\u6a21\u677f\uff0cResumizeAI\u5982\u4f55\u786e\u4fdd\u81ea\u5bb6\u6a21\u578b\u5728\u201c\u5339\u914d\u201d\u4e0e\u201c\u865a\u9970\u201d\u4e4b\u95f4\u4e0d\u6ed1\u5411\u540e\u8005\uff0c\u624d\u662f\u5b83\u80fd\u4ece42\u7968\u4e2d\u8dd1\u51fa\u6765\u7684\u5173\u952e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u867d\u7136\u5185\u7f6e\u7684\u6295\u9012\u8ffd\u8e2a\u5668\u601d\u8def\u6b63\u786e\uff08\u9644\u4ef6\u7ed1\u5b9a\u771f\u6b63\u8f93\u51fa\u7684\u7b80\u5386\u7248\u672c\uff09\uff0c\u4f46\u4f5c\u4e3a\u72ec\u7acb\u4ea7\u54c1\uff0c\u5176\u771f\u5b9e\u4f7f\u7528\u573a\u666f\u7ec8\u7a76\u9ad8\u5ea6\u4f9d\u8d56\u201c\u7528\u6237\u5148\u6709\u6295\u9012\u9700\u6c42\u201d\u3002\u4e00\u65e6\u7528\u6237\u6c42\u804c\u7ed3\u675f\uff0c\u7559\u5b58\u4fbf\u6210\u96be\u9898\u3002\u800cB\u7aefHR\u7cfb\u7edf\u5bf9\u7ebf\u4e0a\u5730\u5740\u7684\u8ba4\u53ef\u5ea6\u3001PDF\u683c\u5f0f\u7684\u5b89\u5168\u5408\u89c4\u6027\u7b49\u9690\u6027\u95e8\u69db\uff0c\u4e5f\u5c1a\u672a\u770b\u5230\u660e\u786e\u89e3\u6cd5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u8fd9\u662f\u4e00\u628a\u6253\u78e8\u5f97\u5f88\u8d81\u624b\u7684\u201c\u70b9\u5bf9\u70b9\u201d\u6b66\u5668\uff0c\u4f46\u82e5\u8981\u9632\u6b62\u7528\u6237\u6253\u5b8c\u4ed7\u5c31\u6254\u6389\uff0cResumizeAI\u8fd8\u9700\u8981\u63d0\u4f9b\u66f4\u591a\u8d85\u8d8a\u6c42\u804c\u5468\u671f\u7684\u9644\u52a0\u4ef7\u503c\uff0c\u6216\u8005\u91cd\u65b0\u5b9a\u4e49\u201c\u8ddf\u8e2a\u201d\u8fd9\u4ef6\u4e8b\u7684\u8fb9\u754c\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">ResumizeAI<\/span>\n                <\/div>\n<div class=\"comment-content\">Paste any job posting, or search live openings right inside Resumize, and AI tailors your resume and cover letter to it in seconds by matching your real experience. Export a polished PDF or publish a shareable profile at your own URL. Built to kill the busywork of applying, one job at a time.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Hamza, one of the makers of ResumizeAI.<\/p>\n<p>I built this because the job hunt is mostly busywork. You find a role you actually want, then spend an hour rewriting your resume and cover letter to match it, and you do that again for the next job, and the next. The tailoring is the part that matters, and it&#8217;s the part everyone dreads.<\/p>\n<p>ResumizeAI fixes that. You build your background once, then for any job you paste (or find inside the app), the AI matches your real experience to the posting and tailors your resume and cover letter in seconds. Export a clean PDF, or publish a shareable profile at your own URL.<\/p>\n<p>What we care about most: the output has to be honest and specific to you, not generic AI filler you&#8217;d be embarrassed to send.<\/p>\n<p>We&#8217;d genuinely love your feedback. What&#8217;s the most painful part of applying for you right now? And if you try it, tell me where it falls short. I&#8217;ll be here all day answering everything.<\/p>\n<p>Thank you for checking us out \ud83d\ude4f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Would love to see a built-in tracker that logs every job you tailored a resume for, with notes on follow-ups or interview stages, so it doubles as a lightweight ATS for your search.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@eden_dai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eden_dai<\/a>&nbsp;Miesha, love this question, and yes, this already exists. When you paste a job posting, we save it to a tracker with a status pipeline (Wishlist \u2192 Applied \u2192 Interviewing \u2192 Offer\/Rejected\/Accepted), a notes field, an applied date, and critically, the exact resume and cover letter you tailored for that specific role stays attached to the job. So you&#8217;re not just getting a list of applications, you get the actual artifacts you sent for each one, which is the part that usually breaks when people try to bolt a tracker onto a separate tool.<\/p>\n<p>What we don&#8217;t have yet: a proper drag-and-drop Kanban board view (right now it&#8217;s a table with status badges), and follow-up reminders like &#8220;nudge me if this has sat in Applied for 10 days.&#8221; Both are genuinely useful and both are going on the list, thanks for pushing on this.<\/p>\n<p>If you do try it, I&#8217;d love to know whether the tracker holds up once you&#8217;ve got 30+ roles in it. That&#8217;s usually where lightweight trackers start to feel thin. \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ACA6C2BJUUOMFB\" class=\"app-title\">Resume Support by Blomma<\/a><\/p>\n<div class=\"one-liner\">Get past the ATS with practical advice, skills and edits<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">25<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Resume Support by Blomma\u662f\u4e00\u6b3e\u5e2e\u52a9\u6c42\u804c\u8005\u89e3\u6790\u7b80\u5386\u5728ATS\u7cfb\u7edf\u3001\u62db\u8058\u7ecf\u7406\u773c\u4e2d\u8868\u73b0\u7684\u5de5\u5177\uff0c\u63d0\u4f9b\u9488\u5bf9\u6027\u4f18\u5316\u5efa\u8bae\u548c\u6280\u80fd\u63d0\u5347\u65b9\u5411\uff0c\u89e3\u51b3\u7b80\u5386\u6295\u9012\u540e\u77f3\u6c89\u5927\u6d77\u5374\u4e0d\u77e5\u539f\u56e0\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/798ddb53-2094-4125-ac35-c93589fe8073.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/94f25beeaa1d46d9bdc7d80ca73b8abb\"><source src=\"https:\/\/www.loom.com\/share\/94f25beeaa1d46d9bdc7d80ca73b8abb\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7bb1def9-e6f6-4dad-960b-99a2cdf1e051.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/86f1fe9d-e354-429a-8c27-7e1066b08012.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ef4503c4-bdf3-4a4b-904c-8d8761878517.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5073d23a-c13d-4f40-951a-2dd8156dbbc4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Hiring<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Career<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7b80\u5386\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">ATS\u89e3\u6790<\/span><br \/>\n            <span class=\"tag\">\u6c42\u804c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6280\u80fd\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">\u7b80\u5386\u6539\u5199<\/span><br \/>\n            <span class=\"tag\">\u62db\u8058\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u804c\u4e1a\u53d1\u5c55<\/span><br \/>\n            <span class=\"tag\">\u4eba\u5c97\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u7b80\u5386\u8bca\u65ad<\/span><br \/>\n            <span class=\"tag\">\u4eba\u5de5\u667a\u80fd<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u80af\u5b9a\u5de5\u5177\u7684\u5b9e\u7528\u6027\u548c\u540c\u7406\u5fc3\uff0c\u4e00\u4f4d\u957f\u671f\u7528\u6237\u79f0\u5bf9\u5176\u804c\u4e1a\u4ea7\u751f\u5b9e\u8d28\u5f71\u54cd\u3002\u6838\u5fc3\u95ee\u9898\u805a\u7126\u5de5\u5177\u5982\u4f55\u8bc4\u4f30\u6210\u5c31\u80cc\u666f\uff08\u5982\u6307\u6807\u3001\u56e2\u961f\u89c4\u6a21\uff09\u53ca\u662f\u5426\u652f\u6301\u7ed3\u5408\u5177\u4f53\u804c\u4f4d\u63cf\u8ff0\u8fdb\u884c\u5206\u6790\u3002\u5f00\u53d1\u8005\u56de\u5e94\u5de5\u5177\u517c\u987e\u6545\u4e8b\u53d9\u8ff0\u548c\u6280\u80fd\u5339\u914d\uff0c\u652f\u6301\u901a\u7528\u53cd\u9988\u4e0e\u9488\u5bf9\u6027\u4f18\u5316\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Resume Support by Blomma\u5207\u4e2d\u4e86\u6c42\u804c\u5e02\u573a\u4e2d\u4e00\u4e2a\u9690\u79d8\u800c\u5173\u952e\u7684\u75db\u70b9\u2014\u2014\u201c\u6c89\u9ed8\u6dd8\u6c70\u201d\u3002\u4f20\u7edfATS\u4f18\u5316\u5de5\u5177\u5f80\u5f80\u53ea\u5173\u6ce8\u5173\u952e\u8bcd\u5806\u780c\uff0c\u5374\u65e0\u6cd5\u544a\u8bc9\u7528\u6237\u201c\u4e3a\u4ec0\u4e48\u88ab\u62d2\u201d\u3002Blomma\u8bd5\u56fe\u4ece\u4e09\u4e2a\u7ef4\u5ea6\uff08ATS\u3001\u62db\u8058\u7ecf\u7406\u3001\u7528\u4eba\u4e3b\u7ba1\uff09\u8fd8\u539f\u7b80\u5386\u7684\u771f\u5b9e\u9605\u8bfb\u4f53\u9a8c\uff0c\u5e76\u63d0\u4f9b\u53ef\u64cd\u4f5c\u7684\u6539\u5199\u4e0e\u6280\u80fd\u5efa\u8bbe\u5efa\u8bae\uff0c\u8fd9\u6bd4\u5355\u7eaf\u7684\u201c\u8bc4\u5206\u201d\u6216\u201c\u6392\u7248\u5de5\u5177\u201d\u66f4\u5177\u4ef7\u503c\u3002\u5176\u771f\u6b63\u7684\u521b\u65b0\u5728\u4e8e\u5c06\u201c\u53cd\u9988\u9ed1\u7bb1\u201d\u900f\u660e\u5316\uff0c\u8ba9\u6c42\u804c\u8005\u4ece\u88ab\u52a8\u731c\u6d4b\u8f6c\u5411\u4e3b\u52a8\u8fed\u4ee3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u4ecd\u9762\u4e34\u4e24\u4e2a\u6311\u6218\uff1a\u7b2c\u4e00\uff0c\u53cd\u9988\u7684\u7cbe\u51c6\u5ea6\u53d6\u51b3\u4e8e\u5176\u5bf9\u884c\u4e1a\u3001\u804c\u4f4d\u7684\u6df1\u5ea6\u7406\u89e3\uff0c\u82e5\u4ec5\u4f9d\u8d56\u901a\u7528\u89c4\u5219\uff0c\u53ef\u80fd\u6ca6\u4e3a\u9ad8\u7ea7\u7248\u201c\u8bed\u6cd5\u68c0\u67e5\u5668\u201d\uff1b\u7b2c\u4e8c\uff0c\u7528\u6237\u63d0\u5230\u7684\u201c\u6839\u636e\u804c\u4f4d\u63cf\u8ff0\u5b9a\u5236\u5efa\u8bae\u201d\u529f\u80fd\uff0c\u624d\u662f\u771f\u6b63\u62c9\u5f00\u5dee\u8ddd\u7684\u6218\u573a\uff0c\u4f46\u76ee\u524d\u56de\u590d\u4e2d\u5e76\u672a\u5c55\u793a\u5176\u7b97\u6cd5\u5982\u4f55\u6743\u8861ATS\u89c4\u5219\u4e0e\u4eba\u7c7b\u504f\u597d\u4e4b\u95f4\u7684\u51b2\u7a81\u3002\u6574\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u4e00\u6b3e\u201c\u9ad8\u60c5\u5546\u3001\u4f4e\u627f\u8bfa\u201d\u7684\u5de5\u5177\u2014\u2014\u4e0d\u8d29\u5356\u7126\u8651\uff0c\u800c\u662f\u63d0\u4f9b\u4fe1\u606f\u5dee\uff0c\u8fd9\u5728\u4ed8\u8d39\u610f\u613f\u8f83\u4f4e\u7684\u6c42\u804c\u8f85\u52a9\u5e02\u573a\u91cc\uff0c\u662f\u4e00\u6761\u5dee\u5f02\u5316\u4f46\u9700\u8981\u6301\u7eed\u9a8c\u8bc1\u7684\u8def\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Resume Support by Blomma<\/span>\n                <\/div>\n<div class=\"comment-content\">Ever applied for a job and never even gotten a call? Often your resume is filtered out by an applicant tracking system (ATS) before a person ever reads it&#8230; and you never get to know why. Blomma&#8217;s new tool shows you how yours reads (to the ATS, the recruiter, and the hiring manager) then helps you spot the skills to put front and center, the ones to build, and rewrites your resume around the real outcomes that get callbacks. We can&#8217;t promise you the job\u2014but we&#8217;ll help your skills get seen.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Super clean tool and a launch message that actually feels empathetic. Congrats\ud83d\ude4c <a href=\"https:\/\/www.producthunt.com\/@silviaoviedo\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"silviaoviedo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@silviaoviedo<\/a> on going live.<br \/>qq does it evaluate context around achievements (like metrics, scale, team size), or is it mostly looking at role positioning and skill alignment? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;thank you Priya! It does look at both angles:<\/p>\n<ul>\n<li>\n<p>how to tell a better story<\/p>\n<\/li>\n<li>\n<p>How to present metrics<\/p>\n<\/li>\n<li>\n<p>What skills you need to build to stand out<\/p>\n<\/li>\n<\/ul>\n<p>Hope it\u2019s helpful!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">For the last couple of months, people have been sending me their resumes. Friends, people I sort of know, a few strangers from communities I&#8217;m in.<\/p>\n<p>It&#8217;s always some version of the same question: why isn&#8217;t this working?<\/p>\n<p>I&#8217;ve hired hundreds of people over my career. I&#8217;ve read the resumes, sat in the interviews and debriefs, decided who moves forward. And here&#8217;s the thing&#8230; most people never find out why they got passed over.<\/p>\n<p>So they do the only thing they can. They run their resume through another tool that optimizes it for the ATS and hope this version does better. But getting past the filter was never really the problem. The problem is nobody tells you what got you in or out&#8230; or what to build so it goes differently next time.<br \/>\nSo we built a free tool to help.<\/p>\n<p>It reads your resume the way a hiring manager would, tells you what&#8217;s working and what&#8217;s making people hesitate, and shows you the skills worth building next. It&#8217;ll rewrite it too, if you want. <\/p>\n<p>It won&#8217;t get you a job. I won&#8217;t pretend otherwise. What it can do is tell you the stuff people are usually too polite, or too busy, to say.<\/p>\n<p>If you try the tool, we&#8217;d love to hear your thoughts. And no matter what, we&#8217;re rooting for you \ud83e\udde1<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@silviaoviedo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@silviaoviedo<\/a>&nbsp;The tone of this launch post is fantastic, rooting for you guys congrats\ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I\u2019ve been a Blomma user for a few months and it has made genuinely material impact to my career already. The new app is delightful to use and the team continues to ship at a ridiculous pace. Congrats team! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jmilinovich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jmilinovich<\/a>&nbsp;Thank you so much for the kind words \ud83d\ude4f\ud83c\udffe  <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This has been so helpful especially in navigating my career pivot and trying to figure out how my background and experiences map into my new role!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love this! curious if it&#8217;s giving general feedback on the resume, or if it&#8217;s also pulling in the job description to give feedback with the context of the actual role?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@davidspinks\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@davidspinks<\/a>&nbsp;Thanks for the support, and for the excellent question!! \ud83d\ude4f\ud83c\udffe<\/p>\n<p>The tool can do both!  If you provide the tool with a specific job description, it will customize the resume suggestions for that role.  If you don&#8217;t have a job description, it will still give general feedback on how to improve your resume.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love this launch! Showing how different people &amp; systems actually read your CV definitely makes the feedback far more actionable than just giving it a score!! I can see this helping a ton of people<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@matthew_hesketh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthew_hesketh<\/a>&nbsp;appreciate your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/2EJT6KDSQDK4PJ\" class=\"app-title\">ClariLayer<\/a><\/p>\n<div class=\"one-liner\">AI context layer for analysts<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">25<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ClariLayer\u4e3a\u5206\u6790\u5e08\u63d0\u4f9b\u8de8\u4f1a\u8bdd\u3001\u8de8\u5de5\u5177\u7684\u6301\u4e45\u5316AI\u4e0a\u4e0b\u6587\u5c42\uff0c\u89e3\u51b3\u6570\u636e\u6307\u6807\u5b9a\u4e49\u6df7\u4e71\u3001\u91cd\u590d\u89e3\u91ca\u548c\u5206\u6790\u4e00\u81f4\u6027\u5dee\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/87c0bba5-e940-41ef-b63a-33131f3391cb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/3b1c9af9-429f-47e4-aa9b-61d03b0395eb.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/bJajQJflw3o\"><source src=\"https:\/\/youtu.be\/bJajQJflw3o\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Analytics<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Data &#038; Analytics<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4e0a\u4e0b\u6587\u5c42<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u6307\u6807\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">MCP\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5de5\u5177\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u7ba1\u9053<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u8fd0\u8425<\/span><br \/>\n            <span class=\"tag\">CRM\u4e0a\u4e0b\u6587<\/span><br \/>\n            <span class=\"tag\">\u5206\u6790\u5e08\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u96c6\u6210<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u6301\u4e45\u5316\u4e0a\u4e0b\u6587\u80fd\u63d0\u5347AI\u5de5\u4f5c\u6d41\u6548\u7387\u3002\u6838\u5fc3\u7591\u95ee\uff1a\u6570\u636e\u53d8\u66f4\u65f6\uff0c\u5982\u4f55\u5904\u7406\u51b2\u7a81\u6216\u8fc7\u65f6\u4e0a\u4e0b\u6587\uff1f\u521b\u59cb\u4eba\u56de\u5e94\u79f0\u51b2\u7a81\u4f1a\u4fdd\u7559\u6765\u6e90\u53ef\u89c1\uff0c\u5e76\u652f\u6301\u6309\u9700\u8c03\u53d6\u6700\u65b0\u6570\u636e\u8fdb\u884c\u8c03\u548c\uff0c\u4f46\u6682\u672a\u5b9e\u73b0\u540e\u53f0\u6301\u7eed\u76d1\u63a7\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                ClariLayer\u5207\u5165\u7684\u201cAI\u4e0a\u4e0b\u6587\u6301\u4e45\u5316\u201d\u770b\u4f3c\u5c0f\u4f17\uff0c\u5b9e\u5219\u5207\u4e2d\u6570\u636e\u9a71\u52a8\u56e2\u961f\u7684\u7cfb\u7edf\u6027\u5185\u8017\u2014\u2014\u6307\u6807\u5b9a\u4e49\u6df7\u4e71\u3001\u6587\u6863\u6ede\u540e\u3001\u8de8\u5de5\u5177\u91cd\u590d\u89e3\u91ca\u3002\u5176\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u66f4\u806a\u660e\u7684AI\u201d\uff0c\u800c\u5728\u4e8e\u4e3a\u73b0\u6709AI\u5de5\u5177\uff08\u5982Copilot\u3001ChatGPT\uff09\u8865\u4e0a\u201c\u4e00\u81f4\u6027\u8bb0\u5fc6\u201d\u7684\u77ed\u677f\uff0c\u672c\u8d28\u662f\u5c06\u201c\u4eba\u6cbb\u201d\u7684\u6570\u636e\u6cbb\u7406\u95ee\u9898\u8f6c\u5316\u4e3a\u201c\u6570\u6cbb\u201d\u7684\u81ea\u52a8\u5316\u534f\u8bae\u5c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u4ecd\u5c5e\u65e9\u671f\u5b9e\u9a8c\u54c1\u3002\u6838\u5fc3\u4eae\u70b9MCP\u534f\u8bae\u6574\u5408\u867d\u5de7\u5999\uff0c\u5374\u4e25\u91cd\u4f9d\u8d56\u7528\u6237\u4e3b\u52a8\u89e6\u53d1\u4e0a\u4e0b\u6587\u8c03\u548c\uff0c\u7f3a\u4e4f\u540e\u53f0\u5b9e\u65f6\u55c5\u63a2\u6570\u636e\u6e90\u53d8\u66f4\u7684\u80fd\u529b\uff0c\u8fd9\u4f1a\u8ba9\u201c\u6301\u4e45\u5316\u201d\u6253\u6298\u3002\u5f53\u6570\u636e\u9891\u7e41\u66f4\u65b0\u65f6\uff0c\u7528\u6237\u4ecd\u9700\u989d\u5916\u7cbe\u529b\u6807\u6ce8\u8fc7\u65f6\u5b9a\u4e49\uff0c\u8fdd\u80cc\u201c\u514d\u7ef4\u62a4\u201d\u7684\u627f\u8bfa\u3002\u6b64\u5916\uff0c\u5f53\u524d\u4ec5\u5f3a\u8c03\u201c\u8fde\u63a5\u4efb\u4f55AI\u201d\uff0c\u5374\u672a\u5c55\u793a\u5982\u4f55\u5e94\u5bf9\u591aAI\u4e4b\u95f4\u56e0\u4e0a\u4e0b\u6587\u51b2\u7a81\u5bfc\u81f4\u7684\u903b\u8f91\u6df7\u4e71\u2014\u2014\u4f8b\u5982CRM\u9884\u6d4b\u4e0e\u6570\u636e\u7ba1\u9053\u5b9a\u4e49\u77db\u76fe\u65f6\uff0c\u4ee3\u7406\u662f\u5426\u4f1a\u9677\u5165\u5faa\u73af\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u521b\u59cb\u4eba\u80cc\u666f\uff08Databricks\/Cloudflare\uff09\u662f\u4fe1\u4efb\u80cc\u4e66\uff0c\u4f46\u4ea7\u54c1\u8981\u7a81\u7834\u201c\u5206\u6790\u5e08\u5de5\u5177\u201d\u7684\u5b9a\u4f4d\uff0c\u9700\u5c3d\u5feb\u8865\u4e0a\u4e09\u70b9\uff1a\u80cc\u666f\u76d1\u63a7\u81ea\u52a8\u5316\u3001\u51b2\u7a81\u6d88\u89e3\u7684\u51b3\u7b56\u6811\u903b\u8f91\u3001\u4ee5\u53ca\u591a\u5de5\u5177\u95f4\u4e0a\u4e0b\u6587\u540c\u6b65\u7684\u539f\u5b50\u5316\u9501\u5b9a\u673a\u5236\u3002\u5426\u5219\u5b83\u53ef\u80fd\u505c\u7559\u5728\u201c\u597d\u7528\u7684\u4fbf\u5229\u8d34\u201d\u800c\u975e\u201c\u6570\u636e\u57fa\u7840\u8bbe\u65bd\u5c42\u201d\u3002\u5bf9\u4e8e\u5c0f\u578b\u56e2\u961f\u6216\u5355\u5175\u5206\u6790\u5e08\uff0c\u5b83\u65e0\u7591\u662f\u63d0\u6548\u5229\u5668\uff1b\u4f46\u80cc\u8d1f\u590d\u6742\u6570\u636e\u6cbb\u7406\u7684\u4f01\u4e1a\uff0c\u4ecd\u9700\u8c28\u614e\u89c2\u671b\u5176\u89c4\u6a21\u5316\u540e\u7684\u7ef4\u62a4\u6210\u672c\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">ClariLayer<\/span>\n                <\/div>\n<div class=\"comment-content\">ClariLayer is a context layer that connects with any AI you use day to day, so you have durable context about you data, metrics, analysis, etc. The context is durable, cross-sessions and cross-tools, so you will never need to re-explain your data.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi everyone! This is Kyle, founder of ClariLayer. <\/p>\n<p>I used to work in data-driven companies like Databricks and Cloudflare. I lived the problem of constantly changing metric definition, poorly maintained documentation, countless data schema issues, etc.<\/p>\n<p>So I left Databricks last year to build a product to solve this problem. I already have real users using ClariLayer for:<br \/>\n&#8211; Sales Operations in unicorn startup<br \/>\n&#8211; Public infrastructure software development<br \/>\n&#8211; Data pipeline management on Databricks and Snowflake<br \/>\n&#8211; CRM context management<br \/>\nand so on!<\/p>\n<p>It is completely free for individuals. Under 5 minutes, you can connect it to your AI over MCP, bootstrap context from your existing projects, and start feeling the benefits it brings to your next AI session!<\/p>\n<p>Keen to hear more feedback from the community here!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kylehui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kylehui<\/a>&nbsp;Really like that ClariLayer solves one of the biggest frustrations with AI tools by giving them durable context across sessions and platforms. Not having to repeatedly explain your data, metrics, and analysis could make AI workflows much more efficient and consistent. Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kylehui\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"kylehui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kylehui<\/a> The idea of persistent AI context is really interesting. How does ClariLayer handle conflicting or outdated context when your data changes over time <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dipanshu_kushwaha5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipanshu_kushwaha5<\/a>&nbsp;Great question. If two definitions disagree, ClariLayer keeps the conflict visible, including where each definition came from, so the agent doesn\u2019t quietly pick one and move on.<\/p>\n<\/p>\n<p>When the underlying source changes, the agent can reconcile a saved definition against fresh warehouse or HubSpot evidence. If they no longer line up, it gets a caveat. Once corrected, the new version supersedes the old one, so the history stays intact.<\/p>\n<\/p>\n<p>One honest limitation today: reconciliation is explicit, triggered by you or the agent during a task. ClariLayer isn\u2019t continuously watching the source in the background yet.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-07-29 PH\u70ed\u699c | 2026-07-29 #1 Preli [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"template-clean-canvas.php","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-297","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/297\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}