{"id":290,"date":"2026-07-23T11:48:45","date_gmt":"2026-07-23T03:48:45","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/23\/2026-07-22\/"},"modified":"2026-07-23T11:48:45","modified_gmt":"2026-07-23T03:48:45","slug":"2026-07-22","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/23\/2026-07-22\/","title":{"rendered":"PH\u70ed\u699c | 2026-07-22"},"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-22<\/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-22<\/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\/7WFK7BDIY5DLKG\" class=\"app-title\">Humalike x Hermes<\/a><\/p>\n<div class=\"one-liner\">Social intelligence plugin for Hermes Agent<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">451<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Humalike x Hermes \u662f\u4e00\u6b3e\u4e3aHermes\u4ee3\u7406\u6ce8\u5165\u793e\u4ea4\u667a\u80fd\u7684\u63d2\u4ef6\uff0c\u901a\u8fc7\u4e00\u6761\u547d\u4ee4\u5373\u53ef\u8ba9AI\u5728Slack\u3001Telegram\u548cWhatsApp\u7b49\u7fa4\u804a\u4e2d\u81ea\u4e3b\u5224\u65ad\u4f55\u65f6\u53d1\u8a00\u3001\u6a21\u4eff\u7fa4\u7ec4\u8bed\u6c14\u5e76\u8bb0\u4f4f\u6210\u5458\u80cc\u666f\uff0c\u89e3\u51b3AI\u4ee3\u7406\u5728\u793e\u4ea4\u573a\u666f\u4e2d\u201c\u6709\u95ee\u5fc5\u7b54\u3001\u50cf\u673a\u5668\u4eba\u4e00\u6837\u5c2c\u804a\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\/2e1752a9-79f2-478f-b854-680a99398217.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\/794e5960-fd2d-49f4-a1db-ea8f9bf9dd48.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\/2a3f2e00-4249-4064-9f77-5f198e489967.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\/4c1eb70d-2f67-42a2-9149-573b772fc12d.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\/e66f43ef-310c-424f-8dca-59d95bdba2eb.jpeg?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\/81247ace-6ea9-4a84-8357-07eccd0257c8.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/MmIkYojTWQo\"><source src=\"https:\/\/youtu.be\/MmIkYojTWQo\" 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\">API<\/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\">\u793e\u4ea4\u667a\u80fdAI<\/span><br \/>\n            <span class=\"tag\">AI\u884c\u4e3a\u5c42<\/span><br \/>\n            <span class=\"tag\">\u7fa4\u804a\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u8282\u594f\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u6027\u5316AI<\/span><br \/>\n            <span class=\"tag\">AI\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">Hermes\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u7fa4\u7ec4\u52a8\u6001\u9002\u5e94<\/span><br \/>\n            <span class=\"tag\">AI\u8bb0\u5fc6\u4e0a\u4e0b\u6587<\/span><br \/>\n            <span class=\"tag\">AI\u9759\u9ed8\u51b3\u7b56<\/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\u4f55\u65f6\u53d1\u8a00\u201d\u7684\u6838\u5fc3\u4ef7\u503c\uff0c\u5173\u6ce8\u884c\u4e3a\u5c42\u4e0e\u6a21\u578b\u89e3\u8026\u7684\u67b6\u6784\u4f18\u52bf\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u4e8e\uff1a\u591a\u7528\u6237\u8bb0\u5fc6\u8fb9\u754c\u5982\u4f55\u7ba1\u7406\uff08\u9632\u6b62\u9690\u79c1\u6cc4\u9732\uff09\uff1f\u9759\u9ed8\u51b3\u7b56\u7684\u5177\u4f53\u673a\u5236\u548c\u5ef6\u8fdf\u6210\u672c\uff1f\u662f\u5426\u652f\u6301\u6309\u7fa4\u7ec4\u81ea\u5b9a\u4e49\u8bdd\u75e8\u7a0b\u5ea6\uff1f\u6709\u7528\u6237\u5efa\u8bae\u66b4\u9732\u8f6e\u6362\/\u6253\u65ad\u5904\u7406API\u7528\u4e8e\u8bed\u97f3\u573a\u666f\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                Humalike x Hermes\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u8ba9AI\u66f4\u806a\u660e\uff0c\u800c\u5728\u4e8e\u8ba9\u5b83\u66f4\u201c\u50cf\u4eba\u201d\u3002\u8fd9\u6070\u6070\u662f\u5f53\u524dAI\u5e94\u7528\u6700\u88ab\u4f4e\u4f30\u3001\u4e5f\u6700\u96be\u4ee5\u653b\u514b\u7684\u9e3f\u6c9f\u2014\u2014\u5f53\u6a21\u578b\u667a\u5546\u5df2\u591f\u7528\uff0c\u884c\u4e3a\u60c5\u5546\u624d\u662f\u51b3\u5b9a\u7528\u6237\u662f\u5426\u613f\u610f\u4e0eAI\u957f\u671f\u5171\u5b58\u7684\u80dc\u8d1f\u624b\u3002\u4ea7\u54c1\u7cbe\u51c6\u5207\u4e2d\u4ee3\u7406\u5728\u7fa4\u804a\u4e2d\u201c\u8bdd\u75e8\u3001\u62a2\u8bdd\u3001\u6ca1\u6709\u8282\u594f\u201d\u7684\u793e\u4ea4\u65e0\u80fd\u75c7\uff0c\u7528\u201c\u51b3\u7b56\u662f\u5426\u53d1\u8a00\u201d\u8fd9\u4e00\u8f7b\u91cf\u7ea7\u95e8\u63a7\u53d6\u4ee3\u201c\u5168\u91cf\u5e94\u7b54\u201d\uff0c\u4ece\u67b6\u6784\u4e0a\u5c31\u6bd4\u4f20\u7edf\u5168\u77e5\u5168\u80fd\u7684Agent\u66f4\u52a1\u5b9e\u3001\u66f4\u7701\u94b1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u52a1\u5fc5\u8981\u8b66\u60d5\u5176\u5ba3\u4f20\u4e2d\u7684\u8f6f\u808b\uff1a\u591a\u7528\u6237\u8bb0\u5fc6\u8fb9\u754c\u7ba1\u7406\u76ee\u524d\u201c\u6ca1\u6709\u7edd\u5bf9\u89e3\u51b3\u65b9\u6848\u201d\u3002\u5728\u5bb6\u5ead\u3001\u56e2\u961f\u7b49\u6df7\u5408\u654f\u611f\u4fe1\u606f\u7684\u7fa4\u804a\u4e2d\uff0c\u4e00\u65e6AI\u628a\u79c1\u804a\u91cc\u7684\u5410\u69fd\u653e\u5230\u5de5\u4f5c\u7fa4\u590d\u8bfb\uff0c\u4fe1\u4efb\u5c06\u77ac\u95f4\u5d29\u584c\u3002\u8fd9\u6216\u8bb8\u662f\u6bd4\u201c\u4f55\u65f6\u53d1\u8a00\u201d\u66f4\u96be\u5904\u7406\u7684\u5730\u72f1\u7ea7\u96be\u9898\u2014\u2014\u793e\u4ea4\u667a\u80fd\u7684\u6838\u5fc3\u4e0d\u4ec5\u662f\u65f6\u673a\u4e0e\u8bed\u6c14\uff0c\u66f4\u662f\u573a\u5408\u4e0e\u6743\u9650\u3002\u53e6\u5916\uff0cSOC 2\u8ba4\u8bc1\u867d\u5728\u63a8\u8fdb\uff0c\u4f46\u7528\u6237\u8bb0\u5fc6\u548c\u6d88\u606f\u5982\u4f55\u8def\u7531\u3001\u662f\u5426\u5b8c\u5168\u53ef\u63a7\uff0c\u9700\u8981\u66f4\u660e\u786e\u7684\u6280\u672f\u6587\u6863\u80cc\u4e66\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662fAI\u4ece\u201c\u5de5\u5177\u201d\u8d70\u5411\u201c\u4f19\u4f34\u201d\u8fc8\u51fa\u7684\u6b63\u786e\u4e00\u6b65\uff0c\u4f46\u522b\u6025\u7740\u628a\u5b83\u53d8\u6210\u4f60\u4e0d\u8be5\u8bf4\u7684\u771f\u8bdd\u7684\u201c\u5c40\u5185\u4eba\u201d\u3002\u771f\u6b63\u7684\u793e\u4ea4\u667a\u80fd\uff0c\u65e2\u8981\u77e5\u9053\u4ec0\u4e48\u65f6\u5019\u8bf4\u8bdd\uff0c\u66f4\u8981\u77e5\u9053\u4ec0\u4e48\u8bdd\u4e0d\u8be5\u8bf4\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\">Humalike x Hermes<\/span>\n                <\/div>\n<div class=\"comment-content\">One command gives your Hermes agent social intelligence. It decides when to speak, adapts to your group&#8217;s tone and remembers who said what. Works in group chats on Slack, Telegram and WhatsApp.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey PH \ud83d\udc4b Mart\u00ed here, co-founder of Humalike.<\/p>\n<p><strong>What is Humalike?<\/strong> The behavioral infrastructure for humanlike AI agents. The social skills your agents have been missing.<\/p>\n<p>Today we&#8217;re shipping the fastest way to feel what that means: a plugin that makes your Hermes agent fit in 1-1&#8217;s \/ groups.<\/p>\n<p><strong>The problem<\/strong><br \/>We run Hermes agents in our own Slack and Telegram. Brilliant at tasks. Painful to use in groups and treat is as a companion. It answered every single message, talked over people, spammed 10 lines when one was enough. Everyone knew it was a bot instantly. That&#8217;s not a model problem, it&#8217;s a behavior problem.<\/p>\n<p>&#8211; What the plugin does: Decides, when to jump in and when to stay quiet<br \/>&#8211; Paces replies like a human: typing speed, pauses, 1-3 short messages instead of a wall<br \/>&#8211; Learns how your group talks and matches the tone<br \/>&#8211; Remembers who people are and what matters to them<\/p>\n<p>One command to install. Works in group chats on Slack, Telegram &amp; WhatsApp.<\/p>\n<p><strong>Where it shines<\/strong><br \/>\ud83d\udc68\u200d\ud83d\udcbb Coworker: steps up when it can actually help<br \/>\ud83c\udf7b Group chats: no longer the awkward one in the room<br \/>\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66 Family chat: reacts to the puppy photo like everyone else<br \/>\ud83e\udd1d Friend: knows you well enough to say no<br \/><strong><br \/>What we&#8217;d love from you<\/strong><br \/>Install it and tell us the when you had the &#8220;aha&#8221; moment (if it didn&#8217;t, that&#8217;s the feedback that matters most).<br \/>We&#8217;ll be here all day reading everything!<\/p>\n<p>Backed by the first investors in ElevenLabs, Revolut &amp; more.<br \/>Still the same tiny \ud83c\uddea\ud83c\uddf8\u00d7\ud83c\uddf5\ud83c\uddf1 team, &amp; still not sleeping much :))<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>20<\/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\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;Congrats Mart\u00ed \ud83d\udc4f<\/p>\n<p>The \u201cwhen to speak and how to speak\u201d layer is underrated. <\/p>\n<p>We\u2019re doing something similar for content \u2014 teaching the AI your real voice so it doesn\u2019t sound like every other tool.<\/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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;congrats Mart\u00ed &#8211; wish you and the team all the success in the world.<\/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\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;Congrats on the launch. In groups where people have mixed expectations, how does Humalike decide which social role to adopt, and can users teach or correct that behavior over time? <\/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&#8217;ve been thinking about this a lot lately , AI keeps getting smarter, but not necessarily better at interacting with people . Love that Humalike is focusing on the behavioral layer. Feels like a missing piece for truly useful AI agents.<\/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><a href=\"https:\/\/www.producthunt.com\/@james_anderson77\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@james_anderson77<\/a>&nbsp;:))))) tysm James! Happy to chat a bit more in our Discord community <a href=\"https:\/\/discord.gg\/7bZFjm9aHH\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/discord.gg\/7bZFjm9aHH<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! The behavior layer being separate from the model is interesting. Everyone tunes what the agent says, few teams touch when it should shut up. Are you guys biasing it toward silence by default? Socially that feels right, but the failure mode I&#8217;d worry about is probably the false negative, the message it should&#8217;ve jumped on and skipped instead<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Thanks for the question! \ud83e\udef6<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>Hey Art! These are some sharp insights you&#8217;ve got here. I&#8217;d say it&#8217;s way harder to make agents biased toward silence, false positives are much harder to get rid of than false negatives, and they make the agent super annoying.<\/p>\n<p>I&#8217;m here if you have anymore questions :))<\/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>Hey!! Maks here, Founding Engineer at Humalike.<\/p>\n<p>All you need to give your agent social intelligence is one command, that&#8217;s it. First credits are on us :))<\/p>\n<p>It works in group chats on Slack, Telegram and WhatsApp.<\/p>\n<p>Feel free to ask any questions. I&#8217;m here to help :))<\/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=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey everyone, I\u2019m Mateusz, founding researcher at Humalike.<\/p>\n<p>This launch is an easy way to see our work in action.<\/p>\n<p>We help the Hermes agent:<\/p>\n<ul>\n<li>\n<p>know when to speak,<\/p>\n<\/li>\n<li>\n<p>fit naturally into a group,<\/p>\n<\/li>\n<li>\n<p>behave less like a bot.<\/p>\n<\/li>\n<\/ul>\n<p>Excited to see how Hermes users experience it.<\/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=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey! Ignacio here, Founding Product Engineer at Humalike.<\/p>\n<p>We encourage you to integrate humalike into your Hermes agent and watch it&#8217;s performance improve immediately in social scenarios. Trust me, you won&#8217;t want to go back to your old agent behaviour. \ud83d\ude09<\/p>\n<p>P.S. Enjoy your free credits on sign-up!<\/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=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;decides when to speak&#8221; gating is the actually hard part here \u2014 an agent that stays quiet 90% of the time is worth more than one that answers every message, but that means the plugin holds group context the base Hermes agent doesn t. Where does the &#8220;who said what&#8221; memory live: inside my own Hermes runtime, or a hosted Humalike service the group messages get routed through? And is the speak\/stay-silent decision a model call on every message (latency + cost per turn) or a lightweight local classifier?<\/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\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;Hey Noctis, these parts live on Humalike side. Both memory and classifier are on our side for few reasons: <br \/>1. ease of integration <br \/>2. easy way to ship improvements<br \/>3. the Hermes plugin uses Humalike APIs that are transferable from product to product. That means if you ever wanted to create your own agent you can easily use Humalike APIs and get similar behavior as Hermes x Humalike<\/p>\n<p>Cost per turn is low from what we tested, when you sign up you get 10.000 free credits which should be enough for months of normal usage for hermes agent.<\/p>\n<p>Let me know if you are concerned about something else specifically:))<\/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 <a href=\"https:\/\/www.google.com\/search?q=https:\/\/www.producthunt.com\/%40marticarmona\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marticarmona<\/a>! Decoupling the behavioral layer from the LLM core is definitely the right architectural move for conversational agents.<\/p>\n<p>Because the plugin remembers &#8216;who people are and what matters to them&#8217; in shared group settings (Slack, Telegram, WhatsApp), how does Humalike manage multi-user memory boundaries? If User A shares context in a 1-on-1 thread with the agent, how does the underlying knowledge graph prevent that memory from surfacing in a shared team or family group chat where User B is present?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>For now, the underlying memory doesn&#8217;t prevent it. We want the behavioral layer to be able to correctly assess what information should be shared and what shouldn&#8217;t :)) It&#8217;s, of course, a very hard problem and we don&#8217;t claim to have an absolute solution. <\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;Tysm for the support Franz!<\/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 suggestion from someone who works with voice agents a lot: it would be great to see a turn-taking or interruption handling module exposed through the API. Right now most stacks handle barge-in in a pretty mechanical way, so a behavioral layer that knows when to pause, yield, or gently hold the floor would be a really meaningful addition.<\/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\/@feride178675\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@feride178675<\/a>&nbsp;Yep, exactly! That&#8217;s what we mean by behavioral layer, and turn-taking API is acutally one of the 7 APIs we have available, although it&#8217;s not tailor-made for voice. If you have use-case for voice where you need humanlike turn-taking, let&#8217;s connect and chat:))<\/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\/@feride178675\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@feride178675<\/a>&nbsp;:)))))<\/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 your product, i have a question how you optimize the token usage ? <\/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\/@kartikmalik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kartikmalik<\/a>&nbsp;\ud83e\udef6\ud83e\udef6<\/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\/@kartikmalik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kartikmalik<\/a>&nbsp;Thanks Kartik! The optimization is already in how the turn-taking component works: a tiny &#8220;should I reply?&#8221; check runs on every message, and the full pipeline fires only when the agent actually has something to say! <\/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\/@kartikmalik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kartikmalik<\/a>&nbsp;Appreciate 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 turn-taking API is the part that got me. Knowing when to stay silent is honestly the harder problem than knowing what to say. Curious how you handle group dynamics where multiple people are typing at once, does the model factor in who&#8217;s been most active? Congrats on the launch, excited to see where this goes!<\/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\/@vanmurten_eth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vanmurten_eth<\/a>&nbsp;Alexey! You&#8217;re right, this problem is super hard. We handle it like a real human would, which means that as a new message comes in, the agent looks at the whole conversation and decides whether it should reply to any message from the conversation, taking the new message into account as context. <\/p>\n<p>I am happy to answer any other questions you might have :)) <\/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\/@vanmurten_eth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vanmurten_eth<\/a>&nbsp;Thanks for the supp Alexey!<\/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\/@vanmurten_eth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vanmurten_eth<\/a>&nbsp;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>Congrats <a href=\"https:\/\/www.producthunt.com\/@mcarmonas\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a> &amp; team. What was the main challenge you wanted to solve when building Humalike?<\/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\/@hamza_afzal_butt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hamza_afzal_butt<\/a>&nbsp;tysm! Social skills &amp; proactiveness!<\/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>Hello PH, I&#8217;m Mateusz co-founder and CTO @ Humalike. I will be active here to answer any question! \ud83d\ude4b\u200d\u2642\ufe0f<\/p>\n<p>We&#8217;ve been dogfooding Hermes x Humalike plugin for 2 weeks now. Here are few use-cases where I see the most potential:<\/p>\n<ul>\n<li>\n<p>Gangprompting<\/p>\n<\/li>\n<li>\n<p>Personal assistant (like Poke)<\/p>\n<\/li>\n<li>\n<p>Agent for personal group &#8211; friend or family<\/p>\n<\/li>\n<\/ul>\n<p>It&#8217;s possible thanks to our internal research team combined with extreme speed of our engineering. We would love to hear your feedback!<\/p>\n<p><strong>SOC 2 in progress <\/strong>\ud83d\udd12<\/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\/@mateusz_jacniacki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mateusz_jacniacki<\/a>&nbsp;Had the same thought recently , our Ai agents can solve complex tasks but still struggle with basic human interctions . Love seeing someone tackle this problem head on . Best of luck with the laucnh.<\/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>Does Humalike adapt to different group dynamics over time, or does each workspace start from a predefined behavioral profile?<\/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\/@tarqiya_forgah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarqiya_forgah<\/a>&nbsp;Indeed it does adapt! We continuously update its understanding of the group through components like Norms, Social Memory, Theory of Mind, and Social Signals. <\/p>\n<\/p>\n<p>That lets the agent pick up jokes, understand what matters to different people and align with the local behavior.<\/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>Love the concept. One question: can developers customize how talkative the agent should be depending on the workspace or group?<\/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\/@nayan_joshi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nayan_joshi<\/a>&nbsp;Thanks! Yes! Talkativeness is part of the agent&#8217;s personality, and each workspace\/group runs its own, so the same agent can be all business in one room and playful in another.<\/p>\n<p>And even without touching anything, thanks to social learning API, it reads the room and matches each group&#8217;s rhythm on its own: quiet team, quieter agent.<\/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\/@nayan_joshi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nayan_joshi<\/a>&nbsp;tysm!<\/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>so you&#8217;re giving soul to hermes??<\/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\/@jiteshghanchi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jiteshghanchi<\/a>&nbsp;Hahah, actually good that you ask, we should clarify.<br \/>We add whole new layer for turn-taking: decide when to speak vs stay stilent, that works well in group chats. We change how hermes acts when he is interrupted. We change the way he responds (short natural burst messages instead of long report-like messages). This is engineering work, not just a prompt.<\/p>\n<p>We add Social Memory -&gt; another layer of memory focused on people, their preferences, humor and opinions.<\/p>\n<p>We add social learning that fires every few messages -&gt; Hermes picks up new jokes, style and norms without you having to touch soul[.]md at all. It happens automatically many times during one chat.<\/p>\n<p>Annnddd yes, we also improve your Soul based on our experience building 4 different humanlike agent products:))<\/p>\n<p>You should give it a try, the jump you can make with Soul alone is 1.5x, with everything we got it&#8217;s 10x<\/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\/@jiteshghanchi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jiteshghanchi<\/a>&nbsp;\ud83d\udc40\ud83d\udc40\ud83d\udc40<\/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 the memory work across different group chats or is it per-group? Curious how much conversation history it needs before it starts picking up tone shifts.<\/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\/@talhakhalidmtk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@talhakhalidmtk<\/a>&nbsp;One memory for all of your groups, platforms (discord, telegram, slack, whatsapp&#8230;) and threads. Give it a try and push it to the limit<\/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. Social intelligence gets useful only when the signal is explainable. When Hermes surfaces an insight about a person or community, can users inspect the evidence behind it and correct the signal if the system gets it wrong?<\/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\/@yaroslav_stelmakh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yaroslav_stelmakh<\/a>&nbsp;Hermes is the definition of auto-improving agent, it has memory and learns new skills. Humalike plugin also uses this information to adjust behavior, and even makes it stronger thanks to Social Learning API used under the hood.<\/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\/@yaroslav_stelmakh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yaroslav_stelmakh<\/a>&nbsp;tysm!<\/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>Finally someone tackling the awkwardness problem head on. Tried the API and the proactivity cues feel way more natural than the stiff reminders my agent used to send.<\/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\/@savazverjtjn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@savazverjtjn<\/a>&nbsp;:)))) That&#8217;s great to hear!<\/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 &#8216;decides when to speak&#8217; bit is the whole game imo. most agents in a group chat have zero restraint and just talk over everyone<\/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\/@alex_watson2110\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_watson2110<\/a>&nbsp;100%.. it&#8217;s unusable by default. Give our plugin 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\/@alex_watson2110\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_watson2110<\/a>&nbsp;Thanks for the comment Alex! I&#8217;m here if you have anymore 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>I appreciate that this tackles a problem many developers notice after deployment. Technical accuracy alone rarely creates comfortable interactions. Will there be tools for testing personality consistency before releasing agents? <\/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\/@john_michael31\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@john_michael31<\/a>&nbsp;Hey, yes! We have an audit page where you can paste transcript of any agent (powered by Humalike or not) and you will have detailed analysis of how it performs. <\/p>\n<p>We also have CLI for it if you want to run this analysis on recurring basis e.g. once per week!<\/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\/@john_michael31\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@john_michael31<\/a>&nbsp;:))) <a href=\"https:\/\/humalike.ai\/audit\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/humalike.ai\/audit<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I want to know whether the hardest part was making the agent more human, or making it less eager to participate.<\/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\/@reda_roqai_chaoui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reda_roqai_chaoui<\/a>&nbsp;Hahaha that&#8217;s a good one! It depends a lot&#8230;<br \/>We built a AI Community Manager in the past that, if it was properly guided (through channels) and with a lot of constraints (behavior), the hardest part was how to make it human (infinite issues). Now, if you are building something with a lot of constraints and it&#8217;s against product nature (having constraints is bad), making it less eager to participate is so hard.<\/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. the &#8220;who said what&#8221; memory question that hasn&#8217;t come up yet: since it runs across Slack, Telegram and WhatsApp, if the same person messages the agent under different handles on two of those platforms, does Humalike link that back to one identity, or does each platform get its own isolated memory of that person? seems like it&#8217;d change a lot for someone who&#8217;s in the same group across multiple apps.<\/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;Hey Gal, good question! Today: &#8220;no&#8221;, guessing two accounts are the same human is risky (hard to know who is who across platforms). But, if you build with our APIs and &#8220;tell us&#8221; (mark) ids\/person, memory unifies across platforms :))<\/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>&#8220;social intelligence&#8221; is the part I&#8217;d want a concrete definition of before buying in &#8211; is there an actual benchmark or eval suite behind that claim, or is it mostly vibes-based (agent seems less awkward in a demo)? proactiveness is even harder to score objectively since an agent that&#8217;s too proactive just becomes annoying. curious what metric you&#8217;re actually optimizing against internally.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a> Hey Omri! Social intelligence is a big statement and we are aware of it. We could argue there is no &#8220;good or bad&#8221; when judging behavior, so it&#8217;s really hard to measure. As of today, we are mesuring it &#8220;vibes-based&#8221;, and also working on benchmarks such as <a href=\"https:\/\/arxiv.org\/abs\/2606.14600\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/arxiv.org\/abs\/2606.14600<\/a>. We (&amp; all devs\/researchers) have a long way to go on delivering proper social intelligence, but we love the problem and we are building\/doing research in that direction!<\/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>decides when to speak is the whole game for me. i&#8217;ve killed more than one bot in a group chat because it replied to everything and drove people nuts. staying quiet at the right moment is way harder than having something to say. how does it learn a specific group&#8217;s threshold, or do you set 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@terminal_candy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@terminal_candy<\/a>&nbsp;Hey Peter!! Totally&#8230; we had the same problem. We realized how big of a problem this was when we were building an AI Community Manager in the past. Making an AI moderate, do support and have genuine conversations with a group of people is really really hard.<br \/>About groups norms, we have an API called Norms that exists just to solve that problem, + combining it with other APIs such as social intelligence and theory of mind, we are able to make agents adapt really well so far!<\/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>Splitting those two apart is fair, and the interruption handling is the bit I want to poke at. When we did this we cancelled the in-flight generation whenever a new message landed, and the annoying part wasn&#8217;t the cancel, it was deciding whether to restart from the new context or drop the turn, because on a busy channel restarting meant the agent never finished a sentence. Does yours re-run the decision after an interruption, or stay quiet for that turn?<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;We&#8217;ve tried &#8220;everything&#8221; and so far the best way to approach this is re-running the decision after an interruption. There are ways to change this and it&#8217;s valid if the community or chat is really active. Happy to go deep into it and share our experience :))<\/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 team! \ud83d\ude80 Love that you\u2019re treating social skills as infrastructure rather than a prompt-engineering problem. Quick technical question: how does the Social Signals API detect things like typing pauses and deleted reactions? Does it need platform-level event hooks like Discord or Slack webhooks, or can it infer these from message streams alone? Curious how portable that is across stacks.<\/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\/@waqas_baloch4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@waqas_baloch4<\/a>&nbsp;Tysm!!<\/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>What I&#8217;d want to know is how long the decision takes. In a live group the window where a message is still useful is a couple of seconds wide, and every should-I-speak check we tried added another model call, so by the time it came back yes the thread had moved on two messages and the reply read as odd. Is the gating a small fast classifier sitting in front of the main model, or does the same model produce both the decision and the message?<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;Hey, I think these are two separate things:<br \/>1. actual latency for making a decision<br \/>2. &#8220;group has moved on&#8221; problem<\/p>\n<p>We solve 2 really well by handling interruptions and making sure agent doesn&#8217;t respond to old messages. About 1, yes, it adds latency, and it&#8217;s not perfect. In our testing it&#8217;s not a deal breaker in chat, LLMs are fast enough (compared to humans that acutally have to type each message). I encourage you to give it a try and see how you like it, we would love your 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">When will you guys support discord<\/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\/@dake_zhang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dake_zhang1<\/a>&nbsp;Dake! You can build a Discord Bot with Humalike APIs in 10min. I have an old Discord community were I sold software (with thousands of users) and it runs completely in autopilot with a bot that&#8217;s powered by Humalike :))<\/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>Can this be used with other agent frameworks like Eve or OpenClaw?<\/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\/@gilad_tsehori\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gilad_tsehori<\/a>&nbsp;Hey, humalike APIs are easy to build with. You can connect any kind of agent to Humalike. We don&#8217;t have out-of-the-box integrations with Eve or OpenClaw though, let us know your use and let&#8217;s chat!<\/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\/@gilad_tsehori\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gilad_tsehori<\/a>&nbsp;Not yet, Hermes is first integration for now. If people find value on Hermes x Humalike, really soon it will be on Eve or OpenClaw<\/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\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XOS6KKLW7EXHLV\" class=\"app-title\">Migma AI<\/a><\/p>\n<div class=\"one-liner\">AI runs your email marketing. Better with every send.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">409<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Migma AI\u662f\u4e00\u4e2aAI\u9a71\u52a8\u7684\u5168\u81ea\u52a8\u90ae\u4ef6\u8425\u9500\u5e73\u53f0\uff0c\u4ece\u7b56\u7565\u89c4\u5212\u3001\u5185\u5bb9\u751f\u6210\u5230\u517c\u5bb9\u6027\u6e32\u67d3\u3001\u53d1\u9001\u53ca\u4f18\u5316\uff0c\u4e00\u7ad9\u5f0f\u89e3\u51b3\u90ae\u4ef6\u8425\u9500\u4e2d\u8de8\u5ba2\u6237\u7aef\u6e32\u67d3\u4e0d\u4e00\u81f4\u3001\u4e2a\u6027\u5316\u548c\u5408\u89c4\u6027\u7b49\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\/1699460a-b37a-43ea-93be-67cb677fc7ca.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\/1cd07eec-91d5-45b9-b464-c12b43196f11.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\/d1f11b17-c9f6-481b-ad4d-2c03d0a240cb.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\/f4c3246f-b46b-4944-914e-40340b02d2a7.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\/ee3c4f10-4017-4558-944c-c1de3005ec77.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\/11c243dd-d37e-4c5b-96bc-c42bd19afe0d.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\/db87ad6c-e11a-42e3-9ad2-5bb978198893.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\/643dd148-6765-4236-9970-76e23e78b7b1.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\/cde27c76-5a47-4868-a3ec-237e0c4e2cb0.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\/29bf8f5a-01ea-409f-9752-278b1e604ef3.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\/af17e101-83c0-4459-ae67-1f5b791deaee.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\/36d7c384-33e5-436b-899a-fdf53c31bddb.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\/6297aaba-3f67-417f-ad67-25e1a5939c72.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\/20af40e9-8502-4fab-a566-b26cfe7caa7c.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/c6I3kXXd3EQ\"><source src=\"https:\/\/youtu.be\/c6I3kXXd3EQ\" 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\">Email<\/span><br \/>\n            <span class=\"tag\">Analytics<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u90ae\u4ef6\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u517c\u5bb9\u6027<\/span><br \/>\n            <span class=\"tag\">Zinn\u6807\u8bb0\u8bed\u8a00<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u6027\u5316\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5316<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">B2B<\/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\u5176\u201c\u51cf\u5c11\u4e0a\u4e0b\u6587\u5207\u6362\u201d\u548c\u7aef\u5230\u7aef\u81ea\u52a8\u5316\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\uff1aZinn\u5f15\u64ce\u662f\u5426\u4ec5\u9760\u4fdd\u5b88\u6807\u8bb0\u89c4\u907f\u6e32\u67d3\u95ee\u9898\uff0c\u8fd8\u662f\u771f\u5b9e\u6d4b\u8bd5\uff1f\u5c0f\u7f16\u8f91\u4f1a\u6d88\u8017\u914d\u989d\u5417\uff1f\u80fd\u5426\u5bfc\u51faHTML\u81f3\u5176\u4ed6ESP\uff1f\u5bf9\u5408\u89c4\u548c\u5b9e\u65f6\u9884\u89c8\u6709\u5f3a\u9700\u6c42\uff0c\u8d5e\u8d4f\u975e\u590d\u5236\u751f\u6210\u800c\u662f\u4e00\u4f53\u5316\u5de5\u4f5c\u6d41\u3002\u6709\u7528\u6237\u63d0\u5230\u201c\u7ea61\/12\u751f\u6210\u9700\u91cd\u8bd5\u201d\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                Migma AI\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u201c\u53c8\u4e00\u4e2aAI\u5199\u90ae\u4ef6\u5de5\u5177\u201d\uff0c\u800c\u5728\u4e8e\u8bd5\u56fe\u91cd\u6784\u90ae\u4ef6\u8425\u9500\u7684\u751f\u4ea7\u5173\u7cfb\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u547d\u9898\u975e\u5e38\u6e05\u6670\uff1a\u7528AI Agent\u63a5\u7ba1\u4ece\u201c\u7406\u89e3\u4e1a\u52a1\u76ee\u6807\u201d\u5230\u201c\u751f\u6210\u517c\u5bb9\u5404\u5ba2\u6237\u7aef\u7684\u8425\u9500\u90ae\u4ef6\u201d\u518d\u5230\u201c\u57fa\u4e8e\u6570\u636e\u95ed\u73af\u4f18\u5316\u201d\u7684\u5168\u94fe\u6761\u3002\u8fd9\u5207\u4e2d\u4e86\u90ae\u4ef6\u8425\u9500\u7684\u4e24\u4e2a\u5b9e\u8d28\u6027\u75db\u70b9\uff1a\u4e00\u662f\u201c\u6e32\u67d3\u77e9\u9635\u201d\u95ee\u9898\u2014\u2014\u65e0\u6570\u5de5\u5177\u751f\u6210\u7684\u90ae\u4ef6\u5728Outlook\u6216Gmail\u4e0a\u201c\u7ffb\u8f66\u201d\uff0cZinn\u4f5c\u4e3a\u81ea\u7814\u6807\u8bb0\u8bed\u8a00\u662f\u5bf9\u884c\u4e1a\u79ef\u5f0a\u7684\u6b63\u9762\u7a81\u8fdb\uff1b\u4e8c\u662f\u201c\u7aef\u5230\u7aef\u6548\u7387\u201d\u2014\u2014Klaviyo\u3001HubSpot\u7684\u505a\u6cd5\u662f\u7ed9\u4eba\u7c7b\u64cd\u4f5c\u5458\u52a0\u4e0aAI\u52a9\u624b\uff0cMigma\u5219\u8bd5\u56fe\u6210\u4e3a\u90a3\u4e2a\u64cd\u4f5c\u5458\u672c\u8eab\uff0c\u663e\u8457\u964d\u4f4e\u4eba\u529b\u6210\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u201cAll-in\u201d\u7684\u53e6\u4e00\u9762\u662f\u201cAll-or-nothing\u201d\u3002\u8bc4\u8bba\u4e2d\u7528\u6237\u5bf9\u4e8eZinn\u6e32\u67d3\u673a\u5236\u3001\u914d\u989d\u6d88\u8017\u7b56\u7565\u3001API\u96c6\u6210\u7ec6\u8282\u7684\u5bc6\u96c6\u8ffd\u95ee\uff0c\u6070\u6070\u66b4\u9732\u4e86\u8fd9\u5957\u81ea\u52a8\u5316\u903b\u8f91\u6700\u8106\u5f31\u7684\u4e00\u73af\uff1a\u4fe1\u4efb\u3002\u8425\u9500\u4eba\u5458\u4ecd\u9700\u4fdd\u7559\u201c\u6700\u540e\u4e00\u516c\u91cc\u201d\u7684\u5426\u51b3\u6743\u548c\u63a7\u5236\u529b\u3002Migma\u58f0\u79f0\u201c\u4eba\u7c7b\u6279\u51c6\u201d\uff0c\u4f46\u82e5\u751f\u6210\u9891\u7387\u4e0e\u914d\u989d\u7ba1\u7406\u51b2\u7a81\uff08\u5982\u5c0f\u7f16\u8f91\u6d88\u8017\u914d\u989d\uff09\uff0c\u6216\u81ea\u52a8\u5316\u5de5\u4f5c\u6d41\u5904\u7406\u5f02\u5e38\u573a\u666f\u7684\u97e7\u6027\u4e0d\u8db3\uff08\u59821\/12\u7684\u91cd\u8bd5\u7387\uff09\uff0c\u90fd\u4f1a\u4ece\u201c\u6548\u7387\u795e\u5668\u201d\u6ed1\u5411\u201c\u9700\u8981\u515c\u5e95\u7684\u9ebb\u70e6\u201d\u3002\u6b64\u5916\uff0c\u5176\u80fd\u5426\u5438\u5f15\u5df2\u6df1\u5ea6\u7ed1\u5b9aKlaviyo\/Mailchimp\u7684\u5b58\u91cf\u7528\u6237\u8fc1\u79fb\uff0c\u53d6\u51b3\u4e8e\u6280\u672f\u5c42\uff08Zinn\u7684\u517c\u5bb9\u6027\u662f\u5426\u80fd\u8d85\u8d8a\u4e3b\u6d41\u5e93\uff1f\uff09\u548c\u6210\u672c\u5c42\uff08$49\/20\u4e07\u5c01\u7684\u957f\u671f\u5b9a\u4ef7\u662f\u5426\u5177\u6709\u7ade\u4e89\u529b\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1aMigma\u5728\u6280\u672f\u5c42\u9762\uff08Zinn\uff09\u548c\u4ea7\u54c1\u54f2\u5b66\u5c42\u9762\uff08Agent-first\uff09\u90fd\u8db3\u591f\u6fc0\u8fdb\uff0c\u4f46\u98a0\u8986\u4e00\u4e2a\u4f9d\u8d56\u7a33\u5b9a\u548c\u4fe1\u4efb\u7684\u884c\u4e1a\uff0c\u5149\u9760\u201c\u5feb\u201d\u662f\u4e0d\u591f\u7684\uff0c\u5b83\u8fd8\u9700\u8981\u8bc1\u660e\u81ea\u5df1\u7684\u201c\u7a33\u201d\u3002\u4e0b\u4e00\u6b21\u516c\u5173\u5371\u673a\uff0c\u53ef\u80fd\u5c31\u662f\u67d0\u4e2a\u5927\u5ba2\u6237CEO\u53d1\u73b0\u81ea\u5df1\u7684\u4fc3\u9500\u90ae\u4ef6\u5728Outlook 2003\u4e0a\u6210\u4e86\u4e00\u5806\u4e71\u7801\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\">Migma AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Migma creates full campaigns before you ask. It understands your goals and events, creates every email, personalizes and localizes it, and renders consistently across inboxes. It handles sending, preferences and compliance, then learns what drives revenue.<\/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,<\/p>\n<\/p>\n<p>Over the last year, Liam and I have been obsessed with one idea:<\/p>\n<\/p>\n<p><strong>Your email platform should understand what your business is trying to achieve, carry the work all the way to the inbox, then learn what works.<\/strong><\/p>\n<\/p>\n<p>That is what we built Migma to do.<\/p>\n<\/p>\n<p>Give Migma your brand, audience and goal.<\/p>\n<\/p>\n<p>It plans the campaign.<\/p>\n<\/p>\n<p>Creates the complete sequence.<\/p>\n<\/p>\n<p>Makes the right versions for different audiences and languages.<\/p>\n<\/p>\n<p>Then sends it.<\/p>\n<\/p>\n<p>ChatGPT, Claude and other AI tools can create emails that look good in a browser, but break when they reach real inboxes. They don\u2019t understand compatibility, accessibility or compliance in the way email requires.<\/p>\n<\/p>\n<p>Since our last launch, we learned that compatibility had to be the foundation.<\/p>\n<\/p>\n<p>React Email, MJML and other libraries were still failing to produce emails that looked consistent everywhere.<\/p>\n<\/p>\n<p><strong>So we built Zinn, our own markup language.<\/strong><\/p>\n<\/p>\n<p>It generates emails quickly and efficiently while keeping them compatible across email clients, <strong>even Outlook 2003.<\/strong><\/p>\n<\/p>\n<p>We didn\u2019t build it just to create more emails.<\/p>\n<\/p>\n<p><strong>If you\u2019re paying for a platform, the emails should be worth sending and built to convert.<\/strong><\/p>\n<\/p>\n<p>That\u2019s our mission, and why we watch every metric.<\/p>\n<\/p>\n<p>Migma personalizes and localizes each version. Your audience in Spain receives the email in Spanish. <strong>Customers in Canada can receive it in French or English based on their location and preferences.<\/strong><\/p>\n<\/p>\n<p>Migma tracks which emails drive clicks, purchases and revenue, then uses those results to improve future campaigns.<\/p>\n<\/p>\n<p><strong>Your first campaign should never be as good as your last.<\/strong><\/p>\n<\/p>\n<p>Thanks to our partnership with Cloudflare, we\u2019re also able to offer sending infrastructure you can trust.<\/p>\n<\/p>\n<p>Migma handles domain setup, warmup, compliance, unsubscribes and customer preferences.<\/p>\n<\/p>\n<p>You can work directly in Migma or from your AI agent, Slack or Telegram.<\/p>\n<\/p>\n<p>All of this is also available through our API for <strong>marketing and transactional email<\/strong>. We\u2019re already partnering with other platforms to bring Zinn into their products.<\/p>\n<\/p>\n<p>Since our last launch, we\u2019ve raised a six-figure pre-seed round and started growing from a team of two brothers into a bigger team.<\/p>\n<\/p>\n<p>Today, we\u2019re offering <a href=\"https:\/\/migma.ai\/founder-pass\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Premium at 50% off for the first 200<\/a> customers forever.<\/p>\n<\/p>\n<p><strong>You can create and send up to 200,000 emails per month for $49, and keep that price for as long as you stay subscribed.<\/strong><\/p>\n<\/p>\n<p>We wouldn\u2019t be here without your early validation, feedback and support.<\/p>\n<\/p>\n<p>Thank you,<\/p>\n<p>Adam and Liam<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>35<\/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\/@adam_lab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adam_lab<\/a>&nbsp;Amazing !! <\/p>\n<p>I absolutely love it. So excited to be part of this journey.<\/p>\n<\/p>\n<p>Migma has just revolutionized email marketing.<\/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\/@adam_lab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adam_lab<\/a>&nbsp;This is really huge!! Been watching Adam and Liam build this for months and the Zinn markup piece alone is a game changer, finally an email tool that doesn&#8217;t break the second it hits Outlook. Compatibility + personalization + actual localization in one place? That&#8217;s the SaaS email marketing has been missing. <\/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\/@adam_lab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adam_lab<\/a>&nbsp;The future of email marketing is actually here!! Seeing it on PH today feels surreal. Thank you all so much for the early support&#8230; genuinely means everything to us right now.<\/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>Can we export raw zinn markup or compiled production HTML straight to our own external ESP via API? huge congrats\ud83d\ude4c on the launch <a href=\"https:\/\/www.producthunt.com\/@liam007\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"liam007\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@liam007<\/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<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;Yep, compiled HTML, absolutely. Raw Zinn markup, not at the moment.<\/p>\n<p>You get clean, email-ready HTML with merge variables already in the native syntax for Klaviyo, Mailchimp, HubSpot, Brevo, or Omnisend, so you can drop it straight in without having to rewire personalization.<\/p>\n<p>You can push it through the native connectors or pull it via MCP or a webhook.<\/p>\n<p>And the best part is that the HTML is built to render properly across Gmail, Outlook, Apple Mail, dark mode, mobile, and even older Outlook versions, so you know it\u2019ll look right before you send.<\/p>\n<p>Would genuinely love to hear your feedback once you\u2019ve tried it \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 like products that reduce context switching. This feels like a platform designed around that idea. Great work!<\/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\/@1mirul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@1mirul<\/a>&nbsp;Thanks so much! Cutting context switching was a big part of the design, glad it comes through.<\/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>Migma feels strongest where most AI email tools fall apart: not the copy generation, but the render and compliance layer. Zinn is the interesting bet here because email HTML is still weirdly unforgiving.<\/p>\n<p>Curious how much testing happens before send. Is Migma validating against real inbox\/client previews, or mainly compiling into conservative markup that avoids the usual Outlook, Gmail, dark mode, and clipping issues?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;You\u2019re spot on, email HTML is still surprisingly unforgiving.<\/p>\n<p>Zinn handles the compilation side, but Migma also checks the campaign before send: real inbox and device previews, dark mode behavior, Outlook and Gmail quirks, clipping risk, broken links, and compliance essentials like unsubscribe and sender details.<\/p>\n<p>So it\u2019s not just \u201cgenerate and hope.\u201d You can review the actual output, catch issues early, and only send once everything looks right.<\/p>\n<p>Would love for you to try it with one of your tougher templates and tell us where it breaks \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>Really cool product &#8211; congratulation on the launch. In my experience, the hard part in email isn&#8217;t just the generation, it&#8217;s the render matrix. Outlook&#8217;s Word engine, Gmail clipping at 102KB, dark mode inverting your PNGs. Curious whether the &#8220;proprietary engine&#8221; means real client testing or just conservative table markup.<\/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\/@aidan_codefox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aidan_codefox<\/a>&nbsp;That\u2019s exactly what our Zinn engine is built to solve.<\/p>\n<p>It goes beyond conservative table markup. It handles tricky cases like dark mode color inversion, especially in Gmail on iOS and Android, and you can also run real tests across real devices in Migma before sending to make sure everything renders correctly.<\/p>\n<p>Really appreciate you bringing this up, the render matrix is one of the hardest parts of email, and it\u2019s something we\u2019ve spent a lot of time on.<\/p>\n<p>Give it a try and put it through its paces. I\u2019d genuinely love to hear what you think \ud83d\ude4c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/50a0fafa-af6a-4496-a377-ad94eabe5138.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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>The idea of carrying the whole workflow from campaign planning to the actual inbox is probably the strongest part of Migma for me. It feels much more useful than another tool that only generates copy. How much control do marketers keep before a campaign is sent, and can they require approval at specific stages?<\/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\/@nico_mandera\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nico_mandera<\/a>&nbsp;You keep full control. Migma gets everything ready, but a human approves it before it goes out.<\/p>\n<p>Once approved, you can send it right away or schedule it, and Migma will handle the send automatically at the time you choose.<\/p>\n<p>You can also review, comment, edit, or pause anything along the way. Migma just takes care of the busywork in between \ud83d\ude4f<\/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>Brand consistency is always hard at scale. Looks like Migma is tackling that problem in a practical way.<\/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\/@monir_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@monir_<\/a>&nbsp;Appreciate that \ud83d\ude4f<br \/>It&#8217;s actually the first layer we solved early on, so marketers spend time driving revenue instead of fixing things they shouldn&#8217;t have to worry about.<\/p>\n<p>Try Migma for free 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>klaviyo and hubspot slapped ai email gen on this year too tbh. what&#8217;s actually different here besides zinn?<\/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\/@levi_mitchell1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@levi_mitchell1<\/a>&nbsp;Fair question. <br \/>Zinn&#8217;s part of it, but the bigger piece is that Klaviyo and HubSpot bolted AI onto tools built for a human to run. Migma was built agent first, so it plugs straight into your own project through MCP and can handle your campaigns end to end, not just draft copy for you to finish but the entire workflow.<\/p>\n<p>Come try a full cycle and see the difference.<\/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>ok so per a review, every little edit makes a new email version and burns your daily quota. fast iteration vs hitting the cap fast, real tension there. any plan to batch small edits so they don&#8217;t each count separately?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@owen_parker4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@owen_parker4<\/a>&nbsp;Good question, small edits are grouped, so every tiny change doesn\u2019t burn a separate credit.<\/p>\n<p>You can also use the visual editor for free, which makes it easy to tweak and iterate without eating into your quota.<\/p>\n<p>Really appreciate you flagging this, and would love to hear how it feels once you\u2019ve tried it \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\">Congrats on the launch @liam007! Being able to trigger and manage campaigns directly from Slack or Telegram sounds super smooth. Can we review and approve full campaign previews right inside those channels before they go live?<\/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\/@hannesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hannesh<\/a>&nbsp;Yes exactly! <\/p>\n<p>From Slack you can ask Migma what to send next, check the dashboard for results, or hand it a Figma frame and get back a ready email.<\/p>\n<\/p>\n<p>Come give it a try<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5d9899cf-22d9-4d6c-ac5f-c963b02ed811.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>Direct emission is the ambitious version of this, so I&#8217;m curious what catches a bad token. When we tried it we ended up with a validate-and-retry loop, and roughly 1 in 12 generations needed a second pass, which is fine for a background job and painful when someone is sitting there waiting. Are you constraining the decode with a grammar, or letting it write freely and repairing after?<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;The model writes Zinn directly instead of HTML, that&#8217;s what keeps it fast and consistent across clients.<\/p>\n<p>Come try it see how its super fast<\/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>LETS GOOOOO!<\/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\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;yoo, please watch your APIs, we may burn your servers.<\/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\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;Yahiaaaa \ud83e\udd17<\/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 well thought out blend of email and AI. Really excited about this one. Congrats!<\/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\/@greggblanchard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@greggblanchard<\/a>&nbsp;Migma &lt;3 SendView thanks a lot for 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<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@greggblanchard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@greggblanchard<\/a>&nbsp;Thanks so much! Means a lot coming from someone who gets both sides of it.<\/p>\n<p>Come take it for a spin.<\/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>Upvoted, good luck guys! \ud83c\udde9\ud83c\uddf0 \ud83e\udd1d \ud83c\uddf8\ud83c\uddea<\/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\/@philip_sorensen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@philip_sorensen<\/a>&nbsp;Thanks Philip! Let\u2019s keep the big ones uncomfortable \ud83d\ude04<\/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 thing that would really help me is a side-by-side preview of how the email looks across different clients like Gmail, Outlook, and Apple Mail before I hit approve. It would save me from those surprise layout breaks that always seem to pop up after sending.<\/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\/@yiitqx9x\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yiitqx9x<\/a>&nbsp;Our engine already renders every email to match across clients properly, so the base is solid before anything else kicks in.<br \/>On top of that, Preflight lets you preview it on real devices and clients before you approve, so you catch anything before it ships.<\/p>\n<p>Try it here for free: <a href=\"https:\/\/migma.ai\/email-html-spam-checker\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/migma.ai\/email-html-spam-checker<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/27ab938b-d584-4019-84a3-4ee6ec9dc291.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>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 auto-generated campaigns idea is genuinely cool, but I&#8217;d love to see a side-by-side preview showing how each email renders across Gmail, Outlook and Apple Mail before I hit approve. Would save me from those surprise layout breaks on Outlook especially.<\/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\/@nihaln20560\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nihaln20560<\/a>&nbsp;Love this, and good news, we already have it \ud83d\ude4c Preflight shows client previews (Gmail, Outlook, Apple Mail, dark mode, and more) before you approve, so you catch any Outlook weirdness before it goes out, not after.<\/p>\n<p>Come check it out for free.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e7bc1c54-950c-4115-8e7f-a8118c3c3ee4.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>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>Email marketing that actually learns from results is what most tools claim but dont deliver. How long does it take for the AI to start making noticeble improvements after first few sends?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Totally fair pushback.<\/p>\n<p>Every send feeds data back in immediately, opens, clicks, what converted, so it&#8217;s not waiting on a big batch to update. We don&#8217;t have an exact &#8220;X sends&#8221; number pinned down, but people usually start noticing sharper segmentation and copy within their first few campaigns as it locks into what your audience responds 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Migma\u2019s focus on the full email workflow, from planning to rendering and compliance, feels much more practical than just another AI copy generator. I\u2019m especially curious about how the system learns from approvals, edits, and skipped sends over time. How quickly does it adapt to a brand\u2019s tone and sending judgment?<\/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\/@glebarios\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@glebarios<\/a>&nbsp;Thanks so much, this means a lot \ud83d\ude4f<\/p>\n<p>Brand tone comes from what you feed it <strong>(your assets, guidelines, past campaigns)<\/strong> and it keeps refining that as you approve, edit, or skip sends, so <strong>the more you use it the closer it tracks<\/strong> how you actually write and what you&#8217;re okay shipping.<\/p>\n<p><strong>Performance<\/strong> also feeds straight back in: <strong>opens, clicks, what worked, what didn&#8217;t<\/strong>, all shaping the next campaign automatically.<\/p>\n<p><strong>Come try a few campaigns<\/strong> and you&#8217;ll feel it get sharper send over send \ud83d\udcec<\/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 Migma handle email deliverability and domain reputation when sending campaigns from a connected custom domain?<\/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\/@shahriardgm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shahriardgm<\/a>&nbsp; Great question \ud83d\ude4c<\/p>\n<\/p>\n<p>When you <strong>connect your own domain<\/strong>, Migma handles setup and <strong>warmup<\/strong> for you, so it ramps up gradually and lands in the inbox instead of spam, meeting all the checks that actually help conversion along the way.<\/p>\n<p>If you don&#8217;t have a domain yet, you can send straight from <strong>Migma with a shared address<\/strong>, no setup needed. Or you can <strong>buy a new domain<\/strong> right inside Migma at an affordable price.<\/p>\n<p>Come connect yours and try a send, would love to hear how it lands for you \ud83d\udcec<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9ecb4234-4a7a-4553-9152-fba5d4da0a05.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>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;learns what drives revenue&#8221; part is the interesting bit to me &#8211; how does it attribute revenue back to a specific email when someone gets touched by 3-4 emails in a sequence before converting? that&#8217;s usually where email attribution gets messy even for humans doing it manually.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;You&#8217;re right, when someone gets 3-4 emails before buying, giving one email the credit is guesswork. So we don&#8217;t force it onto a single email.<\/p>\n<p>We track which emails a person actually clicked, and spread the credit across those, leaning toward the ones they engaged with most. Opens we mostly ignore since Apple Mail fakes a lot of them.<\/p>\n<p>The part we really trust is the pattern across lots of sends, not one person&#8217;s path. If the day-3 email with one subject line keeps showing up before people buy, and another version doesn&#8217;t, that tells us something real even when any single journey is messy. <\/p>\n<p>That&#8217;s the math no one has time to do by hand.<\/p>\n<p>Best way to judge it is to see it live. Would love for you to try 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>Congrats on the launch &#8211; really cool idea and looks to be a very smooth product. I have to ask, if clients have all their contacts and operations inside another CRM (think Zoho or GoHighLevel) that currently send their campaigns, how does it work? My clients would be keen to keep their core CRM systems running without having to duplicate data into a specialized email tool.  <\/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\/@danielboardman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@danielboardman<\/a>&nbsp;Thanks, really appreciate that \ud83d\ude4c<\/p>\n<p>Your clients can keep Zoho, GoHighLevel, or their current CRM as the core system. Contacts are imported or synced into Migma through native integrations, connected ESPs, or API\/webhooks, depending on the setup.<\/p>\n<p>So there\u2019s no need to move the rest of their operations. Migma handles the campaign workflow, while the CRM stays the main source of truth.<\/p>\n<p>Would love for you to try it with one of your client setups and tell us how the workflow feels.<\/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>Looks like something we could definitely use something like this in the near future &#8211; do you have a strategy how to you handle sending reputation\/content quality? <\/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\/@foobar_beer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@foobar_beer<\/a>&nbsp;Absolutely, that\u2019s a big part of how we think about the product.<\/p>\n<p>Migma helps on three fronts: content and compliance checks before send, deliverability and warm-up guidance, and reputation monitoring through your connected ESP.<\/p>\n<p>The goal is to help you avoid the common issues that hurt sender reputation, not just generate the email and leave the rest to chance.<\/p>\n<p>Would love to hear what your current setup looks like when you get a chance to try it \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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The line that stands out to me is that your first campaign should never be as good as your last. That learning loop is the real moat here, even more than the rendering work everyone is asking about.<\/p>\n<\/p>\n<p>My angle is the awkward one for it: I run email to a small, high-value B2B list in healthcare, a few hundred serious buyers rather than a consumer list. There a tone-deaf automated send costs a relationship I cannot re-earn, and the revenue signal comes back slow and sparse.<\/p>\n<\/p>\n<p>So, Adam, does the learning loop need consumer volume to work, or can it improve on thin data, where the win is one right email a month rather than a tuned high-frequency cadence?<\/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\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;No. Volume makes the loop faster, but it is not required.<\/p>\n<p>For a small, high-value list, the useful signals start before opens or purchases: what you approve, edit, reject, who you choose to send to, and when you decide not to send.<\/p>\n<p>Migma should become more conservative in that setting, not more autonomous. It prepares the campaign, learns your judgment, and you keep approval before anything goes out.<\/p>\n<p>The goal is not more sends.<\/p>\n<p>It is one email a month that sounds like you, lands at the right moment, and does not burn a relationship.<\/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\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;You&#8217;ve nailed the real constraint here. High-value B2B lists are <em>unforgiving<\/em> as one bad send to a spam trap or invalid address tanks your sender reputation instantly, and suddenly Migma&#8217;s learning loop breaks because mailbox providers are already filtering you.<\/p>\n<p>Before Migma learns what works, you need the list itself to be trusted. That&#8217;s exactly where we built <a href=\"https:\/\/mailthentic.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mailthentic<\/a>. We validate every address, flag risky patterns (typos, role-based, honeypots), and remove the deadweight so Migma&#8217;s AI gets clean signal to learn from.<\/p>\n<p>For your healthcare B2B scenario: clean list first \u2192 Migma learns on engaged buyers \u2192 revenue compounds. Skip the cleanup and even perfect campaigns get junked.<\/p>\n<p>Happy to chat about integrating list verification into your workflow if you&#8217;re interested.<\/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 preflight checker that catches rendering issues across email clients and fixes them with one click is such a good detail, that cross-client mess is usually the most painful part of building emails. Curious how you&#8217;re handling something like Outlook&#8217;s rendering quirks under the hood, that engine has famously been a nightmare for HTML email for years.<\/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 render consistently across inboxes line is the part i&#8217;d test first. outlook has wrecked more of my campaigns than any bad subject line ever did. does it hold up in the older outlook desktop clients or mostly the modern web ones?<\/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\/@terminal_candy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@terminal_candy<\/a>&nbsp;Outlook is exactly the client we built hardest for \ud83d\ude4c Zinn covers the old desktop versions too, not just the modern web ones, down to Outlook 2003.<\/p>\n<p>Come put it through its paces.<\/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>Big congrats team. Love that it factors in the calendar, not just brand and audience. Timing is usually the part founders get wrong, so having that baked into the drafts is smart. Excited to see this one grow.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ben_kahan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ben_kahan<\/a>&nbsp;Really appreciate that \ud83d\ude4f <br \/>Timing is one of those things that&#8217;s easy to get wrong, so glad it&#8217;s landing right.<\/p>\n<p>Come take it for a spin<\/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>Does your platform heat up emails?<\/p>\n<\/blockquote>\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\/@carlos_mendez16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlos_mendez16<\/a>&nbsp;Yes! Connect a new domain and Migma warms it up automatically, so you ramp up sending without hurting your reputation.<\/p>\n<p>Come try it for free!<\/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 Zinn part is what I&#8217;d want to know more about. Every time we&#8217;ve asked a model to emit a bespoke format it drifts back to whatever it saw most in training, so ours kept quietly producing plain HTML where our own schema was required, and prompting never fixed it, a constrained schema did. Is the model writing Zinn directly, or does it emit a structured plan that a deterministic compiler turns into Zinn?<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;Great question! The model writes Zinn directly, not plain HTML. That&#8217;s a big part of why generation is so fast and stays consistent across clients.<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;It took us years of engineering to reach this point. <\/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 this \u2013 congrats on the launch. What signal does it actually learn from: opens, clicks, replies, or revenue?<\/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\/@derrickshowers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@derrickshowers<\/a> Thanks so much!  It&#8217;s not just one signal, we look at a mix of engagement data, opens, clicks, heatmaps, and how people actually interact with the email, not just a single number.<\/p>\n<p>Come give it a try for free.<\/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>&#8220;Creates before you ask&#8221; is the real pitch \u2014 most email tools wait for you to know what to say.<\/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\/@ringo_td5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ringo_td5<\/a>&nbsp;Love how you put that \ud83d\ude4f That&#8217;s exactly the shift we&#8217;re going for, Migma doesn&#8217;t wait around for a brief.<\/p>\n<p>Come see what it drafts 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\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3CNNP4C2NOIRFY\" class=\"app-title\">Buzzy<\/a><\/p>\n<div class=\"one-liner\">Your creative AI co-director<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">389<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Buzzy\u5c06AI\u89c6\u9891\u521b\u4f5c\u4ece\u751f\u621015\u79d2\u77ed\u7247\u7684\u201c\u73a9\u5177\u201d\u5347\u7ea7\u4e3a\u5236\u4f5c20\u5206\u949f\u5e7f\u544a\u7247\u3001\u7535\u5f71\u957f\u7247\u7684\u4e13\u4e1a\u5bfc\u6f14\u5de5\u4f5c\u5ba4\uff0c\u901a\u8fc7\u65e0\u9650\u753b\u5e03\u548c\u591a\u667a\u80fd\u4f53\u534f\u4f5c\uff0c\u89e3\u51b3\u89c6\u9891\u521b\u4f5c\u4e2d\u89d2\u8272\u4e00\u81f4\u6027\u3001\u573a\u666f\u7cbe\u51c6\u63a7\u5236\u3001\u53d9\u4e8b\u8fde\u7eed\u6027\u96be\u4ee5\u517c\u987e\u7684\u884c\u4e1a\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\/991c8f73-7222-4a5a-9e89-0c90bd5b7a3d.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\/a8a87d3d-f69b-4c1d-b1ea-17efe5e84f06.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\/7d9b5f00-ca97-492d-9379-cf0a2d11d70b.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\/39e5eaa8-9cb4-4940-8b93-1d7078318704.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\/0a02bac3-36a9-4da3-aa35-6b9392ed7d25.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\/87810318-943e-473e-a9b4-c622857a59a9.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\/7a186743-acc3-4685-a8c5-827c2f1aa0b0.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/6oK8vnlfhXU?si=bHaimNqmylSCTyNn\"><source src=\"https:\/\/youtu.be\/6oK8vnlfhXU?si=bHaimNqmylSCTyNn\" 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\">Movies<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u89c6\u9891\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u65e0\u9650\u753b\u5e03<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u89d2\u8272\u4e00\u81f4\u6027<\/span><br \/>\n            <span class=\"tag\">\u5546\u4e1a\u5e7f\u544a\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u7535\u5f71\u7ea7\u957f\u7247<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u578b\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u5bfc\u6f14\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u6a21\u677f<\/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\u4e3b\u8981\u5173\u6ce8\u89d2\u8272\/\u54c1\u724c\u89c6\u89c9\u5728\u591a\u573a\u666f\u3001\u591a\u6a21\u578b\u5207\u6362\u65f6\u80fd\u5426\u4fdd\u6301\u4e00\u81f4\u6027\uff1b\u80fd\u5426\u901a\u8fc7\u753b\u5e03\u800c\u975e\u5bf9\u8bdd\u63a7\u5236\u53d9\u4e8b\u8282\u594f\u3001\u60c5\u611f\u4e0e\u706f\u5149\uff1b\u9700\u8981\u6301\u4e45\u7684\u914d\u97f3\u548c\u97f3\u9891\u5bf9\u9f50\u529f\u80fd\uff1b\u5bf9\u4f01\u4e1a\u7528\u6237\u800c\u8a00\uff0c\u5b89\u5168\u5408\u89c4\u4e0e\u56e2\u961f\u534f\u4f5c\u662f\u521a\u9700\u3002\u591a\u6570\u8bc4\u8bba\u5bf9\u201c\u975e\u62bd\u5956\u5f0f\u201d\u7684\u786e\u5b9a\u6027\u63a7\u5236\u611f\u5230\u5174\u594b\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                Buzzy\u7684\u201c\u65e0\u9650\u753b\u5e03+\u591a\u667a\u80fd\u4f53\u201d\u67b6\u6784\u7cbe\u51c6\u5207\u4e2d\u4e86\u5f53\u524dAI\u89c6\u9891\u884c\u4e1a\u7684\u4e24\u5927\u75db\u70b9\uff1a\u4e00\u662f\u201c\u751f\u6210\u5373\u5931\u63a7\u201d\uff0c\u4f20\u7edf\u5de5\u5177\u968f\u673a\u6027\u5f3a\uff0c\u7528\u6237\u50cf\u8d4c\u5f92\u4e00\u6837\u62c9\u4e0b\u62c9\u6746\uff0c\u7b49\u5f85\u6a21\u578b\u8d4f\u8d50\u597d\u7ed3\u679c\uff0c\u800cBuzzy\u901a\u8fc7\u753b\u5e03\u7ed9\u4e88\u7528\u6237\u9010\u5e27\u5bfc\u6f14\u7684\u6743\u529b\uff0c\u628a\u968f\u673a\u6027\u538b\u7f29\u5230\u53ef\u63a7\u533a\u95f4\uff1b\u4e8c\u662f\u201c\u788e\u7247\u5316\u201d\uff0c\u591a\u6570\u5de5\u5177\u53ea\u80fd\u4ea7\u51fa15\u79d2\u201cGIF\u7247\u6bb5\u201d\uff0c\u65e0\u6cd5\u652f\u6491\u771f\u6b63\u7684\u53d9\u4e8b\u957f\u7247\uff0cBuzzy\u901a\u8fc7\u53ef\u590d\u7528\u7684\u89d2\u8272\u3001\u706f\u5149\u3001\u573a\u666f\u53c2\u8003\u53ca\u8de8\u6a21\u578b\u4e00\u81f4\u6027\u7ef4\u6301\uff0c\u63d0\u4f9b\u4e86\u4ece\u521b\u610f\u5230\u6210\u7247\u7684\u5b8c\u6574\u7ba1\u7ebf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5176\u9762\u4e34\u7684\u6311\u6218\u540c\u6837\u660e\u663e\u3002\u7b2c\u4e00\uff0c70+\u6a21\u578b\u7684\u96c6\u6210\u610f\u5473\u7740\u5de8\u5927\u7684\u5de5\u7a0b\u7ef4\u62a4\u6210\u672c\u548c\u63a8\u7406\u6210\u672c\uff0c\u4e14\u4e0d\u540c\u6a21\u578b\u95f4\u7684\u201c\u6f02\u79fb\u201d\u867d\u80fd\u5bb9\u5fcd\uff0c\u4f46\u5168\u81ea\u52a8\u8def\u7531\u7b56\u7565\u662f\u5426\u8db3\u591f\u667a\u80fd\u4ecd\u9700\u7ecf\u53d7\u957f\u7247\u5236\u4f5c\u68c0\u9a8c\uff1b\u7b2c\u4e8c\uff0c\u5f53\u524d\u8bc4\u8bba\u4e2d\u7f3a\u5c11\u5bf9\u751f\u6210\u901f\u5ea6\u3001\u6e32\u67d3\u65f6\u95f4\u3001\u7528\u6237\u5b9e\u9645\u521b\u4f5c20\u5206\u949f\u6210\u7247\u7684\u6210\u672c\uff08\u91d1\u94b1\u4e0e\u65f6\u95f4\uff09\u7684\u5177\u4f53\u53cd\u9988\uff0c\u4ea7\u54c1\u662f\u5426\u771f\u80fd\u8fbe\u5230\u201c\u5546\u4e1a\u53ef\u7528\u201d\u7ea7\u522b\u5b58\u7591\uff1b\u7b2c\u4e09\uff0c\u56e2\u961f\u534f\u4f5c\u3001\u5b89\u5168\u5408\u89c4\u7b49\u4f01\u4e1a\u7ea7\u529f\u80fd\u7684\u7f3a\u5931\uff0c\u4f7f\u5176\u4e3b\u8981\u505c\u7559\u5728\u4e2a\u4eba\u521b\u4f5c\u8005\u5de5\u5177\u5c42\u9762\uff0c\u96be\u4ee5\u6e17\u900f\u5230\u54c1\u724c\u5e7f\u544a\u516c\u53f8\u7684\u751f\u4ea7\u6d41\u6c34\u7ebf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u672c\u8d28\u4e0a\u770b\uff0cBuzzy\u4e0d\u662f\u5728\u201c\u751f\u6210\u201d\u89c6\u9891\uff0c\u800c\u662f\u5728\u201c\u5236\u4f5c\u201d\u89c6\u9891\u3002\u5b83\u66f4\u50cf\u4e00\u4e2aAI\u6df7\u7f16\u7684\u540e\u671f\u5408\u6210\u8f6f\u4ef6\uff0c\u800c\u975e\u7b80\u5355\u7684\u6587\u751f\u89c6\u9891\u5de5\u5177\u3002\u5bf9\u4e8e\u90a3\u4e9b\u538c\u5026\u4e86\u201cAI\u62bd\u5361\u201d\u3001\u5e0c\u671b\u7cbe\u786e\u63a7\u5236\u6bcf\u4e00\u5e27\u753b\u9762\u7684\u4e13\u4e1a\u521b\u4f5c\u8005\u800c\u8a00\uff0c\u5b83\u662f\u6709\u4ef7\u503c\u7684\u8fdb\u5316\u65b9\u5411\u3002\u4f46\u82e5\u60f3\u771f\u6b63\u66ff\u4ee3\u4f20\u7edf\u5f71\u89c6\u5236\u4f5c\u6d41\u7a0b\uff0cBuzzy\u8fd8\u9700\u8981\u62ff\u51fa\u66f4\u591a\u957f\u5468\u671f\u3001\u591a\u89d2\u8272\u3001\u590d\u6742\u53d9\u4e8b\u7684\u6807\u6746\u6848\u4f8b\uff0c\u5e76\u89e3\u51b3\u534f\u4f5c\u4e0e\u6210\u672c\u95ee\u9898\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\">Buzzy<\/span>\n                <\/div>\n<div class=\"comment-content\">Buzzy is the first truly agentic infinite canvas for video creation. It helps you spark ideas, build moodboards, and precisely photoshop your video in one click \u2014 while creating unlimited-length blockbuster films and commercial ads, keeping unlimited subjects consistent, controlling lighting and camera angles, and precisely editing video like photoshop in one workspace.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey everyone! \ud83d\udc4b<br \/>\nElla here, maker and founder of Buzzy.<br \/>\nWe are already facing a critical transition point where AI videos are starting to move into real production pipelines instead of being just a funny toy. That&#8217;s why we build Buzzy.<br \/>\nWhat it is: Buzzy is the first truly agentic infinite canvas for that revolutionizes the video generation in filmmaking and TVC ads landscape. <\/p>\n<p>What makes it different: It&#8217;s no longer a 15-second short GIF, but 20-minute blockbuster films or studio-quality ads!\ud83d\ude32<br \/>\nCreators get full control of every scene using Buzzy&#8217;s infinite canvas and more than 50 tools and more than 70 image and video models, and the whole workflow is enhanced and accelerated by the smartest agent on the canvas. The seamless integration of canvas and multi-model agent empowers creators, marketers, filmmakers, and studios to craft narratives with unprecedented control.<br \/>\nKey features:<br \/>\n&#8211; Create unlimited-length blockbuster films and studio-quality ads<br \/>\n&#8211; keep unlimited subjects consistent \ud83e\udd2f<br \/>\n&#8211; Steal thousands of professional workflows from filmmakers and brand advertisers<br \/>\n&#8211; switch view-angle, control lighting seamlessly<br \/>\n&#8211; Precisely edit videos  like Photoshop<br \/>\n&#8211; Agentic Canvas with all image and video models available <\/p>\n<p>\ud83c\udf81 SPECIAL OFFER \ud83c\udf81<br \/>\nTo celebrate Buzzy&#8217;s launch, we&#8217;re offering a discount for the Product Hunt community:<br \/>\n&#8211; Use HUNTED2026 to enjoy 20% discount for your first monthly subscription<br \/>\n&#8211; The yearly subscription is already at 60% discount<br \/>\nThe discount code is valid for the next 48 hours.<br \/>\nI can\u2019t wait to see what you create with it. Let\u2019s bring your ideas to blockbuster films together.<\/p>\n<p>\ud83d\udc47 USEFUL LINKS \ud83d\udc47<br \/>\n&#8211; Create your first film on Buzzy: <a href=\"https:\/\/www.buzzy.now\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.buzzy.now\/<\/a><br \/>\n&#8211; Watch amazing films made by Buzzy: <a href=\"https:\/\/www.buzzy.now\/agent\/longstorycreator\/5a1f8c3d-7e2b-4f6a-9d4c-3b0e7a1f5c2d\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.buzzy.now\/agent\/long&#8230;<\/a><br \/>\n&#8211; Try create your own ads: <a href=\"https:\/\/www.buzzy.now\/agent\/6a38fdfea653887d495c718b?selectedNode=7357b075-1334-4f73-bb21-2b2f1cfe2e4b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.buzzy.now\/agent\/6a38&#8230;<\/a><br \/>\n&#8211; YouTube tutorial: <a href=\"https:\/\/youtu.be\/6oK8vnlfhXU?si=bHaimNqmylSCTyNn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/6oK8vnlfhXU?si=&#8230;<\/a><br \/>\nCheers,<br \/>\nThe Buzzy Team<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>16<\/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\/@shiying_zhang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shiying_zhang1<\/a>&nbsp;That&#8217;s awesome &#8211; being able to have entities\/identities being persistent across shots is very cool, are you able to use those identities across different projects? (thinking you can then run a consistent &#8216;character&#8217; for all brand media).<\/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\/@shiying_zhang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shiying_zhang1<\/a>&nbsp;how Buzzy handles creative consistency over longer projects. When users are building a multi-scene video or campaign asset, does the AI maintain context around brand guidelines, characters, visual style, and storytelling direction across iterations? Also, are there plans to introduce team collaboration features for creative teams and marketing departments?<\/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\/@shiying_zhang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shiying_zhang1<\/a>&nbsp;Curious, how do you handle governance for AI-generated applications? For example, can teams enforce security, compliance, and architecture standards across every app built on Buzzy?<\/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 canvas instead of a chat timeline clicks! Wondering re 70+ models&#8230;If I build a character in one scene, then switch the underlying video model for the next shot because it handles motion better, does the character hold or drift? Great product overall.<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Yes \u2014 you can switch the underlying model from shot to shot while keeping the same shared character and references. Some variation can still depend on the model, but Buzzy gives you a consistent project context and lets you refine any drift without rebuilding everything from scratch.<\/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>Curious how much control the tool gives on tone. Story tools depend heavily on whether you can control pacing and emotion.<\/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\/@aix_pan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aix_pan<\/a>&nbsp;Exactly. Buzzy lets you shape the story scene by scene, revise individual shots, and adjust pacing and mood without starting over.<\/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>Stopped making anything narrative in AI because it was easier to just draw storyboards. This is the first thing that made me reconsider.<\/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>Is this closer to a creative studio you sit inside, or a chatbot you send prompts 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\/@boyso\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyso<\/a>&nbsp;Closer to a creative studio you work inside. You organize your story, characters, references, and scenes on the canvas, then use conversation to revise specific parts\u2014not just send prompts and wait.<\/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 mood in the trailer sample holds all the way through. That&#8217;s rarer than it sounds.<\/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\/@li_huang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@li_huang1<\/a>&nbsp;Really appreciate that<\/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>Supporting 70+ image and video models sounds like a huge engineering challenge. How do you decide which model to route a specific task to? Is it automatic based on the edit, or does the user have fine-grained control?<\/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>Love seeing AI video move away from short disconnected GIFs toward actual production-grade film pipelines <a href=\"https:\/\/www.producthunt.com\/@shiying_zhang1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shiying_zhang1<\/a>!<\/p>\n<p>For creators using Buzzy to produce 20-minute films or commercial ads, how does the platform handle lip-syncing and dialogue audio track alignment across persistent characters? Do character entities support native voice embedding alongside visual references to keep vocal tone consistent across shots?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;Hi Franz, this is a very good question. For vocal consistency, we do have audio node on our canvas, where user can generate their specific character voice using the audio node. Then for each video clip, they can reference that audio node so seedance 2 will keep the reference to that voice and keep the voice consistent across all video clips. <\/p>\n<p>We don&#8217;t use lip sync a lot, since the results seems not quite good but using the seedance 2 directly by referencing that audio node will really help<\/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 idea!!! I&#8217;ve explored some tools like this in the past. How quickly does AI start understanding your style?<\/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\/@niallcleaver\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@niallcleaver<\/a>&nbsp;Great question! You can establish your style through references, characters, lighting, and visual direction, then reuse them across scenes. The more clearly you define those elements, the faster the workflow becomes consistent.<\/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>Thinking about it for onboarding videos at work. Same character walking new hires through 5 departments.<\/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\/@mingyouagi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mingyouagi<\/a>&nbsp;That\u2019s a great use case.<\/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>Something about the pacing of the demo felt intentional in a way most AI reels don&#8217;t.<\/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>Noticed the samples include a few 8-10 shot scenes, not just 3-shot cuts. Curious how deep the consistency really goes.<\/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\/@andrewstone11\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrewstone11<\/a>&nbsp;Great catch! Buzzy keeps characters, locations, and references persistent across scenes, so consistency can extend well beyond short 3-shot clips. We\u2019re continuing to push it further for longer sequences.<\/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>Every AI video tool right now feels like a slot machine. Pull, pray, repeat. Curious if this feels different.<\/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>Reads like something between a video generator and a story tool. Which side does it lean more?<\/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\/@fayann\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fayann<\/a>&nbsp;It leans more toward a directing workspace than a pure video generator. You can generate footage, but the real focus is organizing and refining stories, characters, scenes, lighting, and shots with continuity.<\/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>Whoever cut the demo reel understands rhythm. That&#8217;s a signal about the underlying tool.<\/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 storyboard is doing more work here than the video model. Once you have characters, objects, and locations as first-class entities that persist across shots, consistency stops being a prompting trick and becomes a data problem. Curious whether edits propagate back down to already-rendered shots. Super cool, and excited to use 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aidan_codefox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aidan_codefox<\/a>&nbsp;Exactly \u2014 Buzzy treats characters, objects, and locations as persistent entities, while shot-level edits can stay local. We\u2019re also exploring better controls for propagating changes across a sequence. Great question!<\/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>Downloaded the demo clip and showed my partner. Their reaction: &#8220;wait, you made that?&#8221; I didn&#8217;t, but I want to.<\/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 agent workflow demo where it suggests the next shot, didn&#8217;t know I wanted that until I saw 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Sat through the trailer sample twice. Wasn&#8217;t planning to. Highest compliment I can give a landing page.<\/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>Not my usual corner of PH but stopped by to say nice launch. The samples do the talking.<\/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>Making anything longer than 10 seconds coherent has been the wall for me. Curious if the co-director framing actually helps.<\/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>Watching the samples I realized this is what I&#8217;ve been trying to make manually with 4 different tools stitched together. Finally, one place.<\/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 co-director framing is doing more work than people realize. A tool that treats you like the director, not the prompter.<\/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\/@kaining_luo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kaining_luo<\/a>&nbsp;You nailed it. The goal is to keep the creative decisions with you while Buzzy handles the execution\u2014not turn filmmaking into prompt engineering.<\/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;first shot great, everything after falls apart&#8221; curve is the pattern I keep hitting. Genuinely rooting for someone to break 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve been circling the AI video space for about a year now, mostly lurking in discords and testing every new thing that drops. What kept bugging me is that every tool felt like it was built for the prompt, not for the story. You&#8217;d get a gorgeous 4-second clip and then have zero idea how to make it talk to the next clip. Reading through your page, the co-director framing clicked instantly \u2014 it&#8217;s the difference between handing someone a paintbrush vs handing them a storyboard. Genuinely excited to try this over the weekend.<\/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>For creators posting daily, could this replace the intro they film every morning? Same look, different subject.<\/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>Pitch phase is where most of our budget disappears. Any tool that helps us show a real-looking concept before shooting is worth a serious look.<\/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>Overall experience is great, but complex scenes can still have some small details that need fixing.<\/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 biggest benefit is the creative freedom. I can explore ideas without worrying about production costs. :))<\/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 samples read like the team watches films, not AI reels. That&#8217;s rarer than it sounds.<\/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\">#4<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/PIAVHXT5GCZFUV\" class=\"app-title\">Kastra<\/a><\/p>\n<div class=\"one-liner\">Runtime authorization for Claude, Cursor, Codex and OpenClaw<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">337<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Kastra \u662f\u4e00\u4e2a\u4e3aAI\u667a\u80fd\u4f53\uff08\u5982Claude\u3001Cursor\u3001Codex\u7b49\uff09\u8bbe\u8ba1\u7684\u8fd0\u884c\u65f6\u6388\u6743\u5c42\uff0c\u5728\u5de5\u5177\u8c03\u7528\u3001\u547d\u4ee4\u6267\u884c\u3001\u6570\u636e\u8bbf\u95ee\u524d\u4ee5\u4e9a\u6beb\u79d2\u7ea7\u5ef6\u8fdf\u5f3a\u5236\u6267\u884c\u5b89\u5168\u7b56\u7565\uff0c\u89e3\u51b3\u4f01\u4e1a\u4f7f\u7528\u81ea\u4e3bAI\u65f6\u201c\u65e0\u6cd5\u5728\u52a8\u4f5c\u6267\u884c\u524d\u963b\u6b62\u4e0d\u5f53\u884c\u4e3a\u201d\u7684\u6838\u5fc3\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\/312b3c76-1890-412c-aecf-f17db87c78f1.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\/00592068-cf0c-4c23-aee7-2dc0e3a2f39c.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\/564cbdc4-5a1b-4fe2-be68-a83a4cccb26c.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\/78fd76b3-f544-42e5-b06c-9da1937ed6f0.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\/1aaaad6d-1f4c-43a4-a588-188f07d04819.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\/e24e3866-41c3-4997-8fbe-0ddd54a71b95.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\/ecf7ed25-6c4f-478d-bb8b-f2712fdf81d6.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\/f03d229e-1898-4303-8352-dd0e96a53623.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\/6ba05ce6-5ef9-4c61-bc40-9c44fb2bc3d3.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\/1fd6b8a8-504e-4f9a-9f90-92c63ac8d935.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\/305af063-b2ab-409e-8bc8-92570b6dec0e.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=6TUETu5lb3Q\"><source src=\"https:\/\/www.youtube.com\/watch?v=6TUETu5lb3Q\" 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><br \/>\n            <span class=\"tag\">Security<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u884c\u65f6\u6388\u6743<\/span><br \/>\n            <span class=\"tag\">Agent\u6cbb\u7406<\/span><br \/>\n            <span class=\"tag\">\u7b56\u7565\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">\u63d0\u793a\u6ce8\u5165\u9632\u62a4<\/span><br \/>\n            <span class=\"tag\">\u654f\u611f\u6570\u636e\u9632\u62a4<\/span><br \/>\n            <span class=\"tag\">\u9884\u6267\u884c\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u8de8\u6846\u67b6\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7<\/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\u4e3a\u9884\u6267\u884c\u63a7\u5236\u7406\u5ff5\u6b63\u786e\uff0c\u4f46\u8d28\u7591\u5176\u6297\u5bf9\u6297\u6027\u653b\u51fb\u80fd\u529b\uff08\u5982\u7ed5\u8fc7\u7b56\u7565\u7684\u8bf1\u5bfc\uff09\u3002\u5173\u6ce8\u7b56\u7565\u5f15\u64ce\u5982\u4f55\u5904\u7406\u5d4c\u5957\u5de5\u5177\u8c03\u7528\u4e2d\u4e0b\u6e38\u8fde\u9501\u52a8\u4f5c\u7684\u6388\u6743\u3002\u5173\u5fc3\u8fd0\u884c\u65f6\u4e0d\u53ef\u8fbe\u65f6\u7684\u201c\u5bb9\u9519\u6a21\u5f0f\/\u6545\u969c\u5173\u95ed\u201d\u9ed8\u8ba4\u884c\u4e3a\uff0c\u8ba4\u4e3a\u5355\u70b9\u6545\u969c\u98ce\u9669\u9700\u8c28\u614e\u3002\u5f00\u53d1\u8005\u4e5f\u8868\u793a\u9700\u8981\u52a8\u6001\u4e0a\u4e0b\u6587\u611f\u77e5\u7b56\u7565\u53ca\u8c03\u8bd5\u4f18\u5316\u5de5\u5177\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                Kastra\u6293\u4f4f\u4e86\u5f53\u524dAI Agent\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u201c\u88f8\u5954\u201d\u7684\u6b7b\u7a74\u3002\u7edd\u5927\u591a\u6570\u56e2\u961f\u8fd8\u5728\u4f9d\u8d56\u201c\u63d0\u793a\u5de5\u7a0b\u201d\u8fd9\u79cd\u6982\u7387\u6027\u624b\u6bb5\u6765\u7ea6\u675fAgent\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u8ddf\u4e00\u4e2a\u4e0d\u53ef\u63a7\u7684\u9ed1\u76d2\u201c\u5546\u91cf\u201d\u3002Kastra\u7684\u903b\u8f91\u5f88\u6e05\u6670\uff1a\u65e2\u7136Agent\u672c\u8eab\u4e0d\u53ef\u4fe1\uff0c\u90a3\u5c31\u4e0d\u8981\u5728\u201c\u8ba9\u5b83\u53d8\u4e56\u201d\u4e0a\u6d6a\u8d39\u7cbe\u529b\uff0c\u76f4\u63a5\u5728\u52a8\u4f5c\u6267\u884c\u8def\u5f84\u4e0a\u67b6\u4e00\u9053\u94c1\u95f8\uff0c\u7528\u786e\u5b9a\u6027\u89c4\u5219\u5426\u51b3\u6389\u5b83\u4efb\u4f55\u8d8a\u754c\u884c\u4e3a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8fd9\u4e2a\u65b9\u5411\u662f\u5bf9\u7684\uff0c\u4f46\u5728\u5149\u73af\u4e4b\u4e0b\u6709\u4e24\u70b9\u5fc5\u987b\u8b66\u60d5\u3002\u5176\u4e00\uff0c\u6240\u8c13\u7684\u201c\u4e9a\u6beb\u79d2\u7ea7\u5ef6\u8fdf\u201d\u5728\u5355\u5c42\u7b56\u7565\u5224\u65ad\u4e0a\u8f7b\u800c\u6613\u4e3e\uff0c\u4f46\u9762\u5bf9\u7528\u6237\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u5d4c\u5957\u5de5\u5177\u94fe\u201d\u548c\u201c\u590d\u6742\u4e0a\u4e0b\u6587\u201d\u65f6\uff0c\u7b56\u7565\u5f15\u64ce\u7684\u8bc4\u4f30\u6df1\u5ea6\u548c\u5ef6\u8fdf\u5982\u4f55\u5e73\u8861\uff0c\u662f\u5de5\u7a0b\u4e0a\u7684\u5de8\u5927\u8003\u9a8c\u3002\u76ee\u524d\u4ec5\u56de\u5e94\u201c\u6bcf\u4e2a\u4e0b\u6e38\u52a8\u4f5c\u72ec\u7acb\u8bc4\u4f30\u201d\uff0c\u4f46\u5e76\u672a\u89e3\u91ca\u590d\u6742\u7b56\u7565\u6811\u4e0b\u7684\u5b9e\u9645\u6027\u80fd\u8870\u51cf\u3002\u5176\u4e8c\uff0c\u5c06\u6388\u6743\u4ece\u201c\u76d1\u7763\u201d\u53d8\u4e3a\u201c\u6267\u884c\u201d\uff0c\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u50b2\u6162\u2014\u2014\u5b83\u9884\u8bbe\u4e86\u7ba1\u7406\u5458\u80fd\u9884\u5224\u6240\u6709\u98ce\u9669\u573a\u666f\uff0c\u5e76\u5199\u51fa\u767e\u65e0\u4e00\u6f0f\u7684\u89c4\u5219\u3002\u5f53Agent\u7684\u884c\u4e3a\u7ec4\u5408\u8d85\u51fa\u9884\u671f\uff0c\u6216\u4f01\u4e1a\u56e2\u961f\u56e0\u89c4\u5219\u590d\u6742\u4ea7\u751f\u8bef\u914d\uff0c\u5bfc\u81f4\u5927\u91cf\u8bef\u6740\u6216\u6f0f\u5224\u65f6\uff0cKastra\u5f88\u53ef\u80fd\u4ece\u201c\u5b89\u5168\u6551\u661f\u201d\u53d8\u6210\u201c\u5f00\u53d1\u963b\u788d\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u5bf9\u4e8e\u4e00\u4e2a\u521a\u4e0a\u7ebf\u7684\u5de5\u5177\uff0cKastra\u81f3\u5c11\u89e3\u51b3\u4e86\u4ece\u201c\u96f6\u63a7\u5236\u201d\u5230\u201c\u6709\u63a7\u5236\u201d\u7684\u8d28\u53d8\u3002\u5b83\u6700\u5927\u7684\u4ef7\u503c\u4e0d\u662f\u6280\u672f\u6307\u6807\uff0c\u800c\u662f\u63d0\u4f9b\u4e86\u201c\u4fe1\u4efb\u4f46\u9a8c\u8bc1\u201d\u7684\u5de5\u7a0b\u8303\u5f0f\u3002\u5f53\u6240\u6709\u4eba\u90fd\u5728\u5439\u5618Agent\u7684\u81ea\u4e3b\u80fd\u529b\u65f6\uff0cKastra\u51b7\u9759\u5730\u8bf4\uff1a\u5148\u628a\u95e8\u9501\u597d\uff0c\u518d\u8c08\u8ba9\u7ba1\u5bb6\u81ea\u7531\u6d3b\u52a8\u3002\u5bf9\u4e8e\u6b63\u5728\u628aAI\u5d4c\u5165\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u56e2\u961f\uff0c\u8fd9\u79cd\u201c\u715e\u98ce\u666f\u201d\u7684\u4ea7\u54c1\u601d\u8def\uff0c\u6070\u6070\u662f\u6700\u52a1\u5b9e\u7684\u4fdd\u9669\u3002\u4f46\u957f\u4e45\u6765\u770b\uff0c\u5b83\u5fc5\u987b\u5b66\u4f1a\u4e0e\u6982\u7387\u6027\u7684\u98ce\u9669\u8bc4\u4f30\u5171\u5b58\uff0c\u800c\u975e\u4ec5\u4ec5\u4f9d\u8d56\u51b0\u51b7\u7684\u5f00\u5173\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\">Kastra<\/span>\n                <\/div>\n<div class=\"comment-content\">Kastra is the runtime authorization layer for AI agents. It decides what agents can and cannot do before actions execute, enforcing policies with sub-1 ms latency across tools, prompts, inputs, and outputs. Use one control plane to govern agents and policies across Claude Code, Cursor, Codex, OpenClaw, the Anthropic SDK, the OpenAI SDK, and more. Prevent unauthorized tool use, prompt injection, and exposure of sensitive data before they become incidents. Trust the rules, not the agents.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Cross-framework support is huge. Claude Code, Cursor, Codex, one policy layer, that&#8217;s rare.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>48<\/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\/@sulemna_ola\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sulemna_ola<\/a>&nbsp;Our neutral enforcement engine across models and agentic systems enables us to enforce the same rules throughout the stack. We want to enhance how you use the tools you love, not replace them.<\/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\/@sulemna_ola\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sulemna_ola<\/a>&nbsp;Yes, and we are adding support for more tools every day! Thank you!<\/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>What I like here is the &#8220;trust the rules, not the agents&#8221; framing. It flips the usual assumption that agents will behave if you prompt them nicely enough. They won&#8217;t always.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>48<\/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\/@nancy_philip\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nancy_philip<\/a>&nbsp;Exactly, we have seen our users want to customize the rules that adjust to their agentic coding style. We allow them to do so; at scale, this helps build trust, and trust allows them to delegate more work to their coding agents. <\/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\/@nancy_philip\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nancy_philip<\/a>&nbsp;Exactly, only a deterministic, neutral layer can enforce this.<\/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>Sensitive data exposure prevention baked into the control plane, not bolted on afterward. That&#8217;s the correct order of operations.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>41<\/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\/@peter_victor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peter_victor<\/a>&nbsp;That&#8217;s exactly the philosophy behind Kastra. We believe authorization should sit directly in the execution path, where every tool call, shell command, API request, and file operation can be evaluated before it executes rather than remediated afterward.<\/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 watched teams try to solve this with prompt engineering alone, telling the agent what it&#8217;s allowed to touch and hoping it listens. That&#8217;s not authorization, that&#8217;s a suggestion. What Kastra seems to be doing is treating agent permissions the way we already treat API permissions, with enforced rules instead of good intentions. Overdue shift.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>40<\/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\/@ramish_saje\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ramish_saje<\/a>&nbsp;Yes, the prompt engineering rules\/policies are often probabilistic approaches that can&#8217;t be guaranteed to work 100% of the time. There is a margin of error that some engineers and enterprises can&#8217;t take the risk of &#8220;trusting&#8221;. That is why we built our engine fully deterministic, so we can build these rules for every custom angle but make sure the highest-risk actions are avoided before they happen. What exists in the market is mostly post-action observability and monitoring, which is insufficient for autonomous AI.<\/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>Genuinely curious how the policy engine handles nested tool calls, where one authorized action triggers a second unauthorized one downstream.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>39<\/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\/@steven_granata\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steven_granata<\/a>&nbsp;Great question. We evaluate every execution independently, not just the initial request.<\/p>\n<p>If an authorized action triggers additional tool calls, each downstream action is intercepted and evaluated against the same policy engine before it executes. Authorization doesn&#8217;t &#8220;carry over&#8221; simply because the parent action was allowed.<\/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&#8217;ve been burned by an agent calling a tool it shouldn&#8217;t have. A pre-execution control plane like this feels overdue, honestly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>28<\/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\/@grayson_carter3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grayson_carter3<\/a>&nbsp;Yes, this is a very common problem. We&#8217;ve heard similar stories from a lot of developers over the past few months. As agents become more autonomous, trusting them isn&#8217;t enough; you also need deterministic guardrails around what they&#8217;re allowed to do. That&#8217;s the gap we set out to solve with Kastra.<\/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>Hi PH. I&#8217;m Carlos. Fernando and I built Kastra.<\/p>\n<p>Here&#8217;s what kept happening. We&#8217;d deploy AI agents in real environments: a coding agent, a support agent, and an infra agent. It had credentials and access, and there was nothing structural stopping it from running any action it decided to take, even in production.<\/p>\n<p>Most teams have authentication, logging, monitoring, and evals. Almost none have a layer that decides &#8220;this specific action cannot execute&#8221; before it executes. The controls that exist look at what the agent already did. We wanted something that decides on the input and output to cover most of the execution level risks. This required a new infra layer for autonomous AI around the authorization angle.<\/p>\n<\/p>\n<p>That&#8217;s Kastra. Every agent action is evaluated against policy and gets an allow or deny decision in under a millisecond. When something needs a human review, that approval now completes in about a second, across our desktop app, web console, and macOS notifications. We reduce that number down every week, and it changes how the product feels. Sub 1ms latency means human-in-the-loop authorization is practical, not theoretical. Kastra is neutral and deterministic across the stack and works with the tools you already use.<\/p>\n<\/p>\n<p>We integrate via 1 click to Claude Code, Codex, OpenClaw, and Cursor, and other regulated enterprise use cases right now. The runtime and policy pack library are open source. The enterprise control plane is commercial. The product is free to try, if you are wondering if you need Kastra run these 2 commands below on your coding agent to scan for potential risks your agent has already done that should have policies built. Everything stays locally on your machine, so you can do this safely.<\/p>\n<p>Run &#8220;brew install kastra-labs\/tap\/kastra-edge&#8221; and then once connected to your account, you can run &#8220;kastra-edge scan&#8221;.<\/p>\n<p>Happy to go into the policy engine architecture, the latency story, how we think about fail-open vs. fail-closed, probabilistic vs deterministic rules, or anything else. We&#8217;ll be in the comments all day.<\/p>\n<p>Carlos &amp; Fernando<\/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><a href=\"https:\/\/www.producthunt.com\/@carlosjimenez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlosjimenez1<\/a>&nbsp;Really like that Kastra focuses on governing AI agents before they take action rather than reacting afterward. Having a single policy layer across different AI tools feels like a practical way to improve security and control. 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\/@carlosjimenez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlosjimenez1<\/a>&nbsp;how Kastra handles dynamic permissions , can policies adapt based on an agent\u2019s context, user intent, or risk level in real time? Also, are there plans to provide analytics around blocked actions and security insights to help teams improve their agent workflows 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@carlosjimenez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlosjimenez1<\/a>&nbsp;How does Kastra balance strict policy enforcement with developer experience? For example, how do teams debug or fine-tune denied actions without slowing down agent 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that this doesn&#8217;t ask me to trust the agent&#8217;s judgment at all, it just checks the action against a rule before anything happens. That&#8217;s the right mental model. Most of the &#8220;AI safety&#8221; tooling I&#8217;ve evaluated this year still leans on the model behaving well, which never sat right with me.<\/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><a href=\"https:\/\/www.producthunt.com\/@thomas_jack3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thomas_jack3<\/a>&nbsp;Very accurate! We learned this by testing the product with some of the top enterprises pushing AI products into production. We realized autonomous AI products required a new infra layer and we built Kastra to solve the trust problem in a scalable 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>I&#8217;ve watched a few &#8220;AI firewall&#8221; products overpromise and underdeliver, so I&#8217;m cautiously optimistic rather than sold. What would actually convince me is seeing how this performs against a red-teamed agent trying to route around the rules, not just against a well-behaved one following the happy path.<\/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\">@sheikh_umair1 That\u2019s a fair point. This has been one of our biggest design priorities. We\u2019ve already tested Kastra against adversarial scenarios because the organizations evaluating and deploying it are building sensitive AI workloads. The product has to be robust enough to earn that trust, and we continue to harden it through real world deployments and testing. Feel free to try it out and give us your feedback!<\/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>What I like here is the scope, one control plane across Claude Code, Cursor, Codex and OpenClaw. I&#8217;ve juggled separate configs for each tool before, and it&#8217;s a mess nobody talks about enough.<\/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\">@edward_moore5 Thanks! That\u2019s exactly one of the problems we kept hearing from developers. Teams don\u2019t want to manage a different set of policies for every AI tool. The goal with Kastra is to define your rules once and have them enforced consistently across all the agents your team uses.<\/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>you mentioned fail-open vs fail-closed as something you&#8217;re happy to dig into, so &#8211; what&#8217;s the actual default when the Kastra runtime itself is unreachable or crashes mid-decision? fail-closed sounds obviously &#8220;safer&#8221; on paper but in practice that just turns your authorization layer into a single point of failure that can halt production agents. is that a global setting, or does it vary per policy depending on how risky the action is?<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;This is a great point. We learned from enterprise conversations that policies needed to be tested per environment for high-frequency authorizations in order to be trusted by large companies that could not have a single point of failure. <\/p>\n<p>So we enabled these fail-open and fail-closed features so every integration can be tested and evaluated before launching to production to make sure the risk of the integration was minimal. Think of it as sandboxing policies in a custom environment: one mode logs every decision without blocking, and the other one logs and blocks them. This can be switched on the dashboard at any time once the customer is ready. The interception and enforcement engine works just the same with every authorization.<\/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\">@galdayan Thank you for the support. Exactly that is the goal, reducing friction and risk across the stack.<\/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\">Really interesting approach to AI security. Instead of monitoring after something happens, preventing risky actions before execution feels like the right direction.<\/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\/@1mirul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@1mirul<\/a>&nbsp;exactly! The primary goal is to deterministically stop things before they happen. The monitoring and logs are a natural byproduct, since we&#8217;re already intercepting every request 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@1mirul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@1mirul<\/a>&nbsp;Thanks! That&#8217;s exactly how we think about it. Monitoring is valuable, but once an action has already happened, you&#8217;re often in incident response mode. We wanted to give developers a deterministic decision point before execution, so they can safely delegate more work to AI without giving up control.<\/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 does kastra prevent prompt injection attacks where an agent attempts to bypass tool parameters by obfuscating CLI commands? huge congrats for shipping \ud83d\ude4c<a href=\"https:\/\/www.producthunt.com\/@carlosjimenez1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"carlosjimenez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlosjimenez1<\/a> <\/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\">@vikramp7470 Thanks! Great question. We don\u2019t rely on the agent resisting prompt injection. Even if an injected prompt changes the agent\u2019s behavior, every tool call and its arguments are still evaluated against deterministic policies before execution. If the resulting action violates policy, it\u2019s denied or held for approval regardless of what prompted 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<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@peter_tribelhorn Thank you Peter! Appreciate the support \ud83d\ude4c<\/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 hitting product hunt <a href=\"https:\/\/www.producthunt.com\/@carlosjimenez1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"carlosjimenez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlosjimenez1<\/a>  keeping dev velocity high while putting hard guardrails around shell commands is pure leverage.<\/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\">@priya_kushwaha1 Thank you so much Priya! Appreciate the support<\/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>Huge congrats on the launch! \ud83d\ude42 <\/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\/@lisa_shmulyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lisa_shmulyan<\/a>&nbsp;thank you for the support Lisa! \ud83d\ude4f<\/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\/@lisa_shmulyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lisa_shmulyan<\/a>&nbsp;Thank you for the support, Lisa! <\/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. Runtime authorization for agents is a strong direction because the risk usually appears after the model decides to act. How do teams define the boundary between low-risk actions that can run automatically and sensitive actions that need explicit approval or audit?<\/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\">@yaroslav_stelmakh Thanks a lot! That\u2019s exactly where policies come in. Teams define which actions should be automatically Allowed, Denied, or Held for human approval based on factors like the tool, environment, data sensitivity, repository, or any custom condition. The goal is to automate the low risk actions while putting guardrails around the actions that actually matter.<\/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>Finally something that treats agent permissions like a real problem. The sub-1ms latency claim seems legit &#8211; I didn&#8217;t notice any lag in tool calls when I tested it with Claude Code.<\/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\">@baharyakupbcr2 I am glad you were able to test it! Let us know what your Recon scan found out in the \u201cRecommendations\u201d section!<\/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\/@baharyakupbcr2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@baharyakupbcr2<\/a>&nbsp;Awesome Bahar, glad you had a good experience! Keeping the AI flow fast was a concern for us since day one. Every decision was made around adding this security layer without hurting 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\">Congratulations on your launch! This feels like the missing piece for regulated AI adoption.  Enterprise\u2011ready &#8211; control, neutral, deterministic, and fast.<\/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\">@odeth_negapatan1 Exactly, this is our goal. We want to become the default neutral authorization layer a top enterprise deploying large scale product and also an indie developer can use. Appreciate the support!<\/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>Thank you<a href=\"https:\/\/www.producthunt.com\/@odeth_negapatan1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@odeth_negapatan1<\/a>, that&#8217;s exactly the gap we set out to close! <\/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 deterministic claim holds right up until the tool is generic.<\/p>\n<p>Denying delete_file or write_prod is the easy case, because the intent sits in the tool name and you can rule on it in under a millisecond. But a coding agent needs a shell. Once bash or run_command is permitted, the dangerous action stops being a tool call and becomes an argument string, and the engine is no longer authorizing an action, it is parsing arbitrary shell to predict one. That is the part that cannot be made deterministic.<\/p>\n<p>It is also where the real incidents will come from, because nobody takes the terminal away from the agent. They deny it the scary sounding tools it was never going to reach for anyway.<\/p>\n<p>How does a policy express that boundary? Can you constrain inside a permitted generic executor, or does allowing bash effectively allow everything downstream of it?<\/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\">@abdullah_javaid3 Great question. We don\u2019t treat bash as a single trusted action. We inspect the command and its arguments before execution, so policies can constrain what is allowed inside a generic executor, not just whether the tool itself is allowed. The goal is to authorize the actual operation being performed, not simply the wrapper used to execute it. Thanks for the thoughtful 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>Carlos, the deterministic engine is the part that matters for my world. I sell AI into healthcare, and &#8220;the agent usually behaves&#8221; is not a line you can put in front of an auditor or a BAA, since a probabilistic guardrail is a suggestion while a deny decision in the execution path is a real control.<\/p>\n<\/p>\n<p>Where I would push: preventing exposure of sensitive data assumes you can recognize it first. Is a policy written against the tool or endpoint, or can it key off the content itself, say a rule that blocks any output carrying patient identifiers no matter which tool produced it?<\/p>\n<\/p>\n<p>And does every allow or deny land in an audit trail I can hand to a compliance review? In regulated work, proof that the control fired is worth as much as the control.<\/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\">@clemente_lopez1 Really appreciate the thoughtful questions. Yes, policies can evaluate both the action and the content, so you\u2019re not limited to matching on a specific tool or endpoint. You can define rules like blocking outputs containing patient identifiers regardless of which tool generated them.<\/p>\n<p>And yes, every Allow, Deny, and Hold decision is recorded with the policy that matched and the supporting context, so you have an audit trail you can use for compliance and investigations.<\/p>\n<p>We completely agree with your last point. In regulated environments, proving that the control executed is just as important as the control itself. That\u2019s a core design principle for us. We are working with healthcare enterprises with the same use cases.<\/p><\/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>Runtime authorization is the missing layer for coding agents. Prompt rules and post-action logs are useful, but they do not help much once an agent has already touched prod or leaked data.<\/p>\n<p>The part I\u2019d want to understand is policy authoring. For a team using Claude Code and Cursor heavily, do policies start from templates, scanned risky actions, or does each org end up writing a lot of custom rules by hand?<\/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\">@aditya_harish_2002 Great question! We support all three. Teams can start with prebuilt policy templates, scan their existing agent activity to automatically generate recommendations, or write custom rules in plain English. Most customers end up combining all three, then refining their policies as they learn how their agents work.<\/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\">@alieksia The plain english rule building feature is enabled in our Pro and Teams plan, but you can still use the Recon scan and our policy packs templates in the free plan that covers some of the highest risks. The policies you build on your own, you can export them and they are opensource.<\/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\">@aditya_harish_2002 Yes, the policies you build with the plain english policy building feature are your own. You can export them and they are opensource when using the Free, Pro and Teams plan.<\/p>\n<p>The policy packs and custom rules we build for enterprises we limit exporting as they hold our IP on these rules for complex regulated environments.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Governing agents before they act instead of auditing after the fact is the shift I&#8217;ve been hoping for.<\/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\">@charlos_brat Appreciate that! That\u2019s exactly the shift we believe needs to happen. Observability tells you what already happened. Authorization decides what is allowed to happen before the action executes.<\/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\/@charlos_brat\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@charlos_brat<\/a>&nbsp;Exactly! And the nicest part is it isn&#8217;t either\/or. Every decision Kastra makes before an action runs is written to a tamper-evident, per-tenant hash-chained decision log, so the &#8220;audit after the fact&#8221; is just the other face of governing before it. And because it&#8217;s chained, you can prove nothing was altered or dropped. There&#8217;s a chain-verification API an auditor runs, not a log file you take on faith.<\/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 line I keep going back to is &#8220;approval now completes in about a second&#8221;.<\/p>\n<\/p>\n<p>We run an approve-before-send step on the support side, and latency was never what broke it. Attention was. While the queue is short people actually read what they are approving. Once it gets long they stop reading and start clicking, and you have a human in the loop on paper but not in practice. Making approval fast is good, but it also makes it cheap, and cheap approvals get rubber-stamped.<\/p>\n<\/p>\n<p>I have never solved this properly, so genuinely asking: does the console show time-to-decision, not just allow\/deny counts? A median of 0.4s across 200 approvals a day, and the same allow rate across 20, are two very different situations and only one of them is human-in-the-loop.<\/p>\n<\/p>\n<p>One smaller thing, and it may be out of scope for an authorization layer: the approver sees the action and the policy that matched. What usually decides whether an action should run is what the agent read three steps earlier. Do you carry any of that into the approval prompt?<\/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\">@jernej_jan_kocica Great point, and it\u2019s something we\u2019ve thought about a lot. We don\u2019t think every action should require approval. If everything goes through a human, people eventually stop reading and start clicking, just like you described.<\/p>\n<p>Our approach is that approvals should be the exception, not the default. Policies can Allow, Deny, or Hold. Hold pauses execution and asks for human approval only for the scenarios you define, while everything else is handled automatically.<\/p>\n<p>Also yes, we already include the execution context that led to the Hold decision, not just the action itself, so the approver has the information needed to make an informed decision. Regarding the time to decision this is one of our strongest angles that support billions of interceptions per environment with sub 1ms latency. We did a lot of infra work to get to this scale.<\/p><\/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 have been testing kastra with my team and even though I\u2019m not very technical it\u2019s very simple to use and it has helped us a lot while building our 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\/@paula_jimenez4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paula_jimenez4<\/a>&nbsp;Kastra is great for new builders learning how to code; it teaches them the risks and helps them understand the agentic coding workloads better by being able to evaluate all the actions, risks, and decisions at runtime. <\/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 use Kastra everyday to discover the risks while coding and it\u2019s very useful.<\/p>\n<\/p>\n<p>Highly recommend \ud83d\udc4d\ud83c\udffb<\/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\/@carlos_campos93\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlos_campos93<\/a>&nbsp;This is great, thank you. We&#8217;re happy we can bring value to 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>Love the recon scan to know all the unexpected\/dangerous things Claude Code has done in the past. Some things I already knew but it caught some others I didn&#8217;t know about it. And with automatic policy generation I don&#8217;t need to worry about it messing up again!<\/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\/@churds\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@churds<\/a>&nbsp;Exactly, Richard, this gives you a baseline of policies that adjust to your coding behavior first. Then, once you have this baseline, you can build new daily policies on top of them to continue reducing risks you learn along the way. Some Recon scans from our customers show many important high-risk actions they were not aware of; some thought they were protected with their existing frameworks, and the reality was different.<\/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\/@churds\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@churds<\/a>&nbsp;Happy Recon could help, Richard!<\/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 integrations with tools like Cursor and Claude Code caught my attention. Looking forward to testing this in a real workflow.<\/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\/@monir_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@monir_<\/a>&nbsp;We hope you enjoy it! Thank you for the support! \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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the part that keeps me from letting my coding agents run fully unattended is exactly this. they will happily do something you didn&#8217;t want and you only find out after the fact. a layer that decides no before the action runs is the piece i keep wishing i had. how granular can the policies get per tool?<\/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\/@terminal_candy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@terminal_candy<\/a>&nbsp;very granular. Kastra sits in front of the action (a pre-tool hook for Claude Code \/ Codex \/ Cursor, or the LLM proxy), so every tool call is evaluated before it executes. A rule can target:<\/p>\n<ul>\n<li>\n<p><strong>A specific tool:<\/strong> exact name, a list of tools, or a regex (e.g. only Bash, or every mcp__* tool).<\/p>\n<\/li>\n<li>\n<p><strong>The tool&#8217;s arguments:<\/strong> substring, multi-substring, or regex conditions over the tool input (e.g. block Bash when the command contains rm -rf or git push &#8211;force; block Write when the file path matches .env). On the proxy path, arguments are flattened per field (output.tool_call.arguments.&lt;key&gt;), so you can match one named argument in isolation.<\/p>\n<\/li>\n<li>\n<p><strong>The context around the call:<\/strong> working directory, git repo\/branch\/dirty state, session, OS, agent permission mode, environment (dev\/prod), model, principal\/agent identity, data classification.<\/p>\n<\/li>\n<li>\n<p><strong>Content:<\/strong> built-in scanners (secrets, PII) can run over the tool input or model output with confidence\/count thresholds.<\/p>\n<\/li>\n<\/ul>\n<p>And &#8220;no&#8221; isn&#8217;t the only answer. Each rule chooses its effect: hard deny, hold (pause the agent and page a human to approve, with a timeout that fails open or closed, your choice), monitor (allow but flag), redact, rate-limit, or spend-cap.<\/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 &#8220;trust the rules, not the agents&#8221; framing is the right instinct \u2014 we&#8217;ve landed on the same philosophy internally. One thing I&#8217;m curious about: when a policy check fails, is deny the only outcome, or can a policy route the action to a human approval queue instead? In practice I&#8217;ve found agents need three outcomes, not two \u2014 allow, deny, and &#8220;a human decides this one.&#8221; Sub-1ms is impressive for the allow path; wondering what the escalation path looks like.<\/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\">@nitish_garg4 Hey Nitish, for these scenarios users can create hold logic rules that can control these actions and wait for a human approval within a limited timeframe of response. This works for most scenarios, with webhooks we have enabled in the app we can extend this timeframe.<\/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\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XQORCUD6WISVS4\" class=\"app-title\">box<\/a><\/p>\n<div class=\"one-liner\">Simple computers for agent w\/ full VMs<\/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>Box\u901a\u8fc7\u547d\u4ee4\u884c2\u79d2\u5185\u63d0\u4f9b\u5e26\u684c\u9762\u548cSSH\u6743\u9650\u7684\u5b8c\u6574Ubuntu\u865a\u62df\u673a\uff0c\u4ee5\u4f4e\u81f30.036\u7f8e\u5143\/\u5c0f\u65f6\u7684\u8d85\u4f4e\u6210\u672c\uff0c\u89e3\u51b3AI\u4ee3\u7406\u5728\u5f00\u53d1\u3001\u6d4b\u8bd5\u548c\u8fd0\u884c\u65f6\u56e0\u8ba1\u7b97\u8d44\u6e90\u4f9b\u7ed9\u6162\u3001\u6210\u672c\u9ad8\u800c\u53d7\u9650\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\/f27e4ca3-4caa-4931-98e6-96ebd7c7ae56.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\/f1777654-83bc-4751-8152-318444621d85.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\/c8d80f49-ab91-43ca-998f-047746b89269.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\/8283edb6-9fd4-4d51-a834-9e2a4f615fda.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\/3e0cf7e1-069e-496e-8e92-92b1b1da81b5.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/pAeAPzpEwME\"><source src=\"https:\/\/youtu.be\/pAeAPzpEwME\" 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>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7406\u4e91\u7535\u8111<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u673a\u5373\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">Agent\u6c99\u7bb1<\/span><br \/>\n            <span class=\"tag\">GPU\u4e91\u5b9e\u4f8b<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u6210\u672c\u4e91\u4e3b\u673a<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5f00\u53d1\u73af\u5883<\/span><br \/>\n            <span class=\"tag\">DevOps\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4e91\u4e0aIDE<\/span><br \/>\n            <span class=\"tag\">\u5f39\u6027\u8ba1\u7b97<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\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\u5176\u4f4e\u6210\u672c\u3001\u5168\u865a\u62df\u673a\u67b6\u6784\u548c\u5feb\u7167\/\u5206\u652f\u529f\u80fd\uff0c\u8ba4\u4e3a\u4f18\u4e8e\u5bb9\u5668\u65b9\u6848\u3002\u4e3b\u8981\u5173\u5207\u70b9\u5305\u62ec\uff1a\u7269\u7406\u9694\u79bb\u8fb9\u754c\uff08\u540c\u4e00\u5bbf\u4e3b\u673a\u4e0d\u540c\u76d2\u5b50\u7684\u5185\u6838\/\u7ba1\u7406\u7a0b\u5e8f\u9694\u79bb\u6027\uff09\u3001\u51fa\u53e3\u6d41\u91cf\u7ba1\u63a7\uff08\u9632\u6b62Agent\u6cc4\u9732\u51ed\u636e\uff09\uff0c\u4ee5\u53ca\u5b89\u5168\u5ba1\u8ba1\u6d41\u7a0b\u662f\u5426\u80fd\u8df3\u8fc7\u5185\u90e8\u91c7\u8d2d\u73af\u8282\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                Box\u6293\u4f4f\u4e86AI\u4ee3\u7406\u5e02\u573a\u4e00\u4e2a\u88ab\u5ffd\u89c6\u4f46\u6781\u5176\u81f4\u547d\u7684\u74f6\u9888\u2014\u2014\u8ba1\u7b97\u8d44\u6e90\u7684\u4f9b\u7ed9\u6548\u7387\u548c\u6210\u672c\u3002\u5f53\u884c\u4e1a\u75af\u72c2\u8ffd\u9010\u6a21\u578b\u80fd\u529b\u8fed\u4ee3\u65f6\uff0c\u5ffd\u89c6\u4e86\u201c\u7b49\u4e24\u4e2a\u6708\u624d\u80fd\u62ff\u5230\u96c6\u7fa4\u201d\u7684\u8352\u8bde\u73b0\u5b9e\u3002\u4ece\u4ea7\u54c1\u5c42\u9762\u770b\uff0cBox\u505a\u4e86\u6b63\u786e\u7684\u53d6\u820d\uff1a\u575a\u6301\u5168\u865a\u62df\u673a\u800c\u975e\u5bb9\u5668\uff0c\u867d\u7136\u770b\u4f3c\u201c\u7b28\u91cd\u201d\uff0c\u4f46\u5f7b\u5e95\u89e3\u51b3\u4e86\u5bb9\u5668\u6c99\u7bb1\u5728\u73af\u5883\u4f9d\u8d56\u3001\u7cfb\u7edf\u7ea7\u6743\u9650\u548c\u6301\u4e45\u72b6\u6001\u4e0a\u7684\u81f4\u547d\u77ed\u677f\uff0c\u8fd9\u5bf9\u4e8e\u9700\u8981\u5b89\u88c5\u590d\u6742\u4f9d\u8d56\u3001\u8fd0\u884c\u5d4c\u5957\u8fdb\u7a0b\u6216\u8de8\u4efb\u52a1\u4fdd\u6301\u5de5\u4f5c\u6d41\u7684\u201c\u771fAgent\u201d\u81f3\u5173\u91cd\u8981\u3002\u5176\u6210\u672c\u4f18\u52bf\u5e76\u975e\u6e90\u4e8e\u6076\u6027\u8865\u8d34\uff0c\u800c\u662f\u901a\u8fc7\u81ea\u7814\u5feb\u7167\u7cfb\u7edf\u3001\u6781\u7b80\u67b6\u6784\u548c\u6b27\u6d32\u6570\u636e\u4e2d\u5fc3\u672c\u8eab\u8f83\u4f4e\u7684\u57fa\u7840\u8bbe\u65bd\u6210\u672c\u5b9e\u73b0\u7684\uff0c\u5546\u4e1a\u6a21\u5f0f\u53ef\u6301\u7eed\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5b89\u5168\u4e0e\u6cbb\u7406\u7684\u8ffd\u95ee\u76f4\u6307\u6838\u5fc3\uff1a\u5feb\u7167\u56de\u6eda\u53ea\u80fd\u6062\u590d\u673a\u5668\u72b6\u6001\uff0c\u65e0\u6cd5\u64a4\u9500Agent\u5df2\u6267\u884c\u7684\u5916\u90e8\u64cd\u4f5c\uff08\u5982\u63a8\u9001\u4ee3\u7801\u3001\u53d1\u9001\u90ae\u4ef6\uff09\u3002\u8fd9\u610f\u5473\u7740\uff0c\u5bf9\u4e8e\u9700\u8981\u63a5\u5165\u5916\u90e8\u7cfb\u7edf\u7684\u751f\u4ea7\u7ea7Agent\uff0cBox\u76ee\u524d\u5b9e\u9645\u4e0a\u5c06\u4fe1\u4efb\u548c\u51fa\u53e3\u98ce\u63a7\u7684\u8d23\u4efb\u5b8c\u5168\u7529\u7ed9\u4e86\u7528\u6237\u3002\u82e5\u4e0d\u80fd\u63d0\u4f9b\u57fa\u4e8e\u7f51\u7edc\u7b56\u7565\u7684\u7cbe\u7ec6\u5316\u51fa\u53e3\u7ba1\u63a7\u548c\u66f4\u4e25\u683c\u7684\u5185\u5b58\/\u5185\u6838\u9694\u79bb\uff0c\u5b83\u66f4\u9002\u5408\u5f00\u53d1\u6d4b\u8bd5\u3001\u6c99\u7bb1\u8bc4\u4f30\u7b49\u573a\u666f\uff0c\u800c\u975e\u76f4\u63a5\u9762\u5411\u9ad8\u5b89\u5168\u654f\u611f\u7684\u751f\u4ea7\u73af\u5883\u3002\u6b64\u5916\uff0c\u201c\u901a\u8fc7\u547d\u4ee4\u884c\u57282\u79d2\u5185\u83b7\u5f97\u7ba1\u7406\u5458\u6743\u9650\u7684VM\u201d\u672c\u8eab\u5c31\u662f\u53cc\u5203\u5251\uff0c\u867d\u964d\u4f4e\u4e86\u4f7f\u7528\u95e8\u69db\uff0c\u4e5f\u540c\u65f6\u5927\u5e45\u964d\u4f4e\u4e86\u6076\u610f\u5229\u7528\u7684\u963b\u529b\u3002Box\u8981\u60f3\u4ece\u201c\u597d\u7528\u7684\u5de5\u5177\u201d\u8dc3\u5347\u4e3a\u201c\u53ef\u9760\u7684\u57fa\u7840\u8bbe\u65bd\u201d\uff0c\u5fc5\u987b\u5728\u5b89\u5168\u8fb9\u754c\u4e0a\u7ed9\u51fa\u66f4\u660e\u786e\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u5426\u5219\u5176\u6781\u81f4\u7684\u6548\u7387\u4f18\u52bf\u53cd\u800c\u53ef\u80fd\u6210\u4e3a\u98ce\u9669\u653e\u5927\u5668\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\">box<\/span>\n                <\/div>\n<div class=\"comment-content\">Box offers the simplest, cheapest cloud computers for agents, thought for builders of agentic platforms &#038; software factories. Run &#8216;box new&#8217; in your terminal, in 2s get a beefy ubuntu VM, with admin rights, a desktop, ssh access. At $0.036\/hr it is 10x less expensive than the likes of E2B, Daytona, Modal, so you can run more agents, or run them longer. Run up to 1000 concurrent boxes fully self-served, or ask us for more, with same-day support from the founders.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello Product Hunt,<\/p>\n<p>2 years ago, I worked at the European Space Agency, scaling their black holes &amp; binary stars research efforts.<\/p>\n<p>At that time, GPT 4o already helped us find many optimizations that made the code more scalable. But to test them, our agents needed a cluster of cloud compute, which we had to wait 2 months to get. AI may work fast but compute provisioning is slowing it down.<\/p>\n<p>After leaving, I spent 10 months building cloud coding agents, which needed cloud computers too, so I tried many self-serve options for &#8220;computers for agents&#8221; and &#8220;AI sandboxes&#8221;.<\/p>\n<p>But there was no fit, they were optimized for bursty, short-lived scenarios on containers rather than full computers where anything just works&#8230;<\/p>\n<p>&#8230; all while being super expensive, high multiples of what the same compute is worth in the average datacenter in Europe.<\/p>\n<p>So 2 months ago, we built and launched box on X, our on-demand computers for agents, super cost-efficient and powerful. <\/p>\n<p>Now our computers for agents have already run for 10 years in just 2 months, growing steadily every week.<\/p>\n<p>Today, they already power many agentic platforms, software factories, cybersecurity audits platforms, with real customers in production.<\/p>\n<p>Try box and let us know how it goes \ud83d\ude42 <a href=\"https:\/\/box.ascii.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/box.ascii.dev<\/a><\/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><a href=\"https:\/\/www.producthunt.com\/@anic_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anic_dev<\/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>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\/@anic_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anic_dev<\/a>&nbsp; Congrats on the launch. You guys built a great product. Happy user here!!<\/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\/@anic_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anic_dev<\/a>&nbsp;Curious about how Box handles agent memory and environment persistence ,can agents maintain context, learn workflows over time, and reuse previous setups across different tasks? Also, are there plans to add collaboration features where multiple agents can work together on complex workflows?<\/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\">The months to provision a cluster detail is the real story here that&#8217;s the actual bottleneck most &#8220;AI moves fast&#8221; narratives skip over. Compute governance and procurement cycles don&#8217;t care how fast your model iterates.<\/p>\n<p>Curious how you&#8217;re hitting $0.036\/hr while staying full VM rather than container is that just leaner infra overhead, or are you oversubscribing hardware more aggressively than E2B\/Modal do? Also: what happens if an agent inside the VM does something destructive is there a snapshot\/rollback layer, or is isolation the whole safety model?<\/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\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;we hit such low price because we designed the whole system for cost efficiency, using no dependencies and minimizing the operational costs. we have our own snapshotting system (beautiful tech built in-house), allowing you to easily stop\/resume\/fork your machine.<\/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\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;Compute in European datacenters is just that cheap, its just hard to build around, we still make v good margins.<\/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 guys! <\/p>\n<p>im Kirill, the CTO of box.<\/p>\n<p>Today, we&#8217;re seeing 7 consecutive weeks of big usage growth, and compared to six months ago, our MRR is 130\u00d7 higher. It&#8217;s been an incredible ride, but we&#8217;re still early, and we&#8217;re shipping every single day.<\/p>\n<p>I&#8217;d genuinely love your feedback: good or bad. If you&#8217;re building coding agents, personal assistants, or any agentic product, you can find box super useful!<\/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\/@luaroncrew\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@luaroncrew<\/a>&nbsp;The goat<\/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. I just implemented this use case and landed on E2B. I&#8217;m running a platform that does agent evaluations of dev tools and the agents need sandbox environments to build in to validate the dev tool. How do you differ from E2B? I just built this feature a couple days ago so its quite new!<\/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\/@tessak22\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tessak22<\/a>&nbsp;<a href=\"https:\/\/box.ascii.dev\/compare\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">box.ascii.dev\/compare<\/a> explains well how we&#8217;re positioned<br \/>tldr: if all you need is 4vCPU 8GB ram sandboxes we&#8217;re 9-10x cheaper with comparable feature set<\/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>Full VM + snapshot\/fork is the right shape for agents that need real state, not just a clean container every run.<\/p>\n<p>The self-serve scale is the part I\u2019d want to stress test. If someone spins up hundreds of boxes for long-running coding agents, do fork\/resume times stay predictable, or does it vary a lot once the fleet is hot?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;no it&#8217;s stable, even at the thousands box per user scale<\/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>Good luck with the launch guys, amazing 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\/@meta_nkt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@meta_nkt<\/a>&nbsp;thank you Nikita!!<\/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>Using box to offload large tasks from <a href=\"https:\/\/strawberry.computer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">strawberry.computer<\/a> phone prototype &#8211; works pretty well for me!<\/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\/@vgrichina\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vgrichina<\/a>&nbsp;lfg!<\/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 stuff. Where&#8217;s best to DM you? <\/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\/@ogandreakiro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ogandreakiro<\/a>&nbsp;X  anic_dev<\/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 safety half of Brandon&#8217;s question never got answered, and it is the more interesting half.<\/p>\n<p>Snapshot and fork is recovery, not prevention. Restoring the machine undoes what the agent did to the machine. It does not undo what already left it. A pushed commit, a sent email, a dropped table on a managed database, a paid API call, none of those roll back when you restore the box.<\/p>\n<p>Isolation bounds the blast radius to the VM. It does not bound it to the world, because the thing that makes an agent useful is the credentials you put inside the box with it.<\/p>\n<p>So which is it today: is egress the customer&#8217;s problem to govern above box, or is there something at the boundary? That answer changes who box is safe to hand to.<\/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>Full VMs with admin + ssh instead of ephemeral containers is the right tradeoff for agents that install system deps or spawn nested processes \u2014 that is exactly where container sandboxes fall over. Two things I would verify before running many concurrent: what is the isolation boundary between boxes on the same host (separate kernels\/hypervisor vs shared), and can I lock down egress per box or do agents get open outbound by default? Also, does box state persist across runs or is every &#8220;box new&#8221; a clean image?<\/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>Brandon&#8217;s &#8220;procurement cycles don&#8217;t care how fast your model iterates&#8221; line hit hard \u2014 that&#8217;s WinBidIQ&#8217;s whole world, just for federal contracts instead of compute. Skipping procurement is the pitch here, but does any customer ever need a security review anyway before spinning up VMs with admin rights?<\/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>ran box new and had an ubuntu vm up in a couple seconds, which genuinely surprised me. the price point makes it easy to justify spinning up extra agents without watching the meter.<\/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>Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@anic_dev\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"anic_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anic_dev<\/a> <\/p>\n<p>I\u2019ll give box a spin! btw the branding is goated \ud83d\udce6<\/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>Full VM per agent is smart approach. Isolation at that level removes a lot of headaches with shared state. Whats the cold start time like when spinning up a new box?<\/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>&#8220;box new \u2192 beefy Ubuntu VM in 2s with admin rights&#8221; is a great DX. The thing I&#8217;d want to see front and center for agent VMs is teardown and isolation \u2014 an agent with admin rights and ssh is one bad loop away from doing real damage or leaking creds across boxes. How ephemeral is each one, and what stops an agent in box A from reaching box B? That&#8217;s the part that decides whether I&#8217;d let something autonomous loose in it. Following.<\/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>I\u2019ve been using box for a few weeks now. By far the best provider and it\u2019s not even close. Great prices, super fast and the founder proactively reached out when they saw I had an issue. My preferred sandbox provider! \ud83d\udce6\ud83d\udce6<\/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>Congrats on the launch! <\/p>\n<\/p>\n<p>As agents move into enterprise workflows, how are you thinking about secure access to private networks, internal systems, identity, and policy, not just the execution environment itself?<\/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>Cool to see pricing finally getting competitive for agent VMs. One thing that would really help builders like me: a built-in snapshot or image registry so I can prebake a box with my project&#8217;s tooling and spin up ready-to-go environments instead of installing dependencies every time. Would save a ton of time and make the 2s boot claim even more useful.<\/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\/@mnevvertumazji\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mnevvertumazji<\/a>&nbsp;you already can! see the templates section of docs.ascii.dev<\/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! Been using box and ascii for a few months now and couldn&#8217;t be happier! Also support is really good, the founders are great. Love the CLI btw<\/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>This looks really nice for spinning up cheap VMs quickly. One thing that would be a huge help: a built-in way to snapshot a box&#8217;s state and resume it later, since agent workflows often need to pause and pick up where they left off rather than start from a fresh ubuntu every time.<\/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\/@hediyedilli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hediyedilli<\/a>&nbsp;it is totally already built 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>too simple to use and spin up &#8211; been working on integrating this in my platform.<\/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\/@arth_tyagi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arth_tyagi<\/a>&nbsp;Hope it&#8217;s going well! Lmk if I can help in any way \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>I&#8217;m a box user, been using it for (I think) a few weeks now. It&#8217;s insanely fast, cheap (actually ridiculous), and good. Try them out! And congrats on the launch guys<\/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\/@kartikskabadi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kartikskabadi<\/a>&nbsp;Thank you so much Kartik! It&#8217;s a pleasure to help 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>Very cool product. Having deployed at scale, most agent sandbox pain is re-provisioning, not compute. Curious how fast fork actually is under load. The persistent-VM + fork-from-snapshot combo is the part that actually changes how you build agent loops. <\/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\/@aidan_codefox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aidan_codefox<\/a>&nbsp;So many hard problems to solve in that space for so many different usecase.<\/p>\n<\/p>\n<p>We catter best to long running agent whose data is precious and never to be lost<\/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 isolation questions above are the ones I&#8217;d want answered before trusting this with anything real, but the one nobody&#8217;s asked yet is billing-side: at $0.036\/hr an agent that hangs or loops instead of exiting cleanly is cheap per hour but not necessarily cheap per incident if nobody&#8217;s watching it. is there an auto-kill on idle\/runaway processes, a hard spend cap per box, or is the ephemeral-and-cheap pricing itself the safety net and you&#8217;re expected to monitor it yourself?<\/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>$0.036\/hr for a full VM with admin rights is a wild undercut of E2B\/Daytona &#8211; what&#8217;s actually different on the infra side that gets you there, bare metal instead of nested virtualization, oversubscribed hosts, or just thinner margins for now? asking because a price that much lower than everyone else usually means either a real efficiency win or something that gets quietly walked back once you&#8217;re past the free\/intro tier.<\/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>box new giving you a real ubuntu box in 2s is the part i like. the thing i actually want this for is handing an agent a throwaway machine so it can go wild without touching my real setup. does the vm tear itself down after, or do i manage cleanup myself?<\/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 2s-to-VM claim caught my eye \u2014 that&#8217;s the number that matters for agent workloads. Question: can you snapshot a warm VM and fork it? The pattern I keep hitting is N agents that all need the same base environment (deps installed, repo cloned) \u2014 cold-booting each one wastes most of the cost advantage. If &#8216;box new &#8211;from-snapshot&#8217; exists, that&#8217;s the killer feature. 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Full VMs instead of a locked-down sandbox feels like the right call for agents that actually need to do things. A lot of agent failures come from environments too restricted to be useful. The tension you&#8217;re managing is the interesting part: a real computer per agent is powerful, but it&#8217;s also the thing that keeps security folks up at night. How do you keep a confused or rogue agent contained without clipping the wings that make box worth 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The ESA-to-cheap-VMs origin is a fun one. The number I keep circling is the $0.036\/hr \u2014 is that flat always-on, or does a box idle between agent turns bill differently? I run a bursty API on Fly and the thing that makes the economics work there is machines auto-stopping to near-zero between requests. An agent box is the opposite shape though: long-lived, holding state, mostly waiting on a model call. At 1000 concurrent that idle-but-alive time is most of the bill. Do you lean on suspend\/resume for that, or is the bet that flat-and-cheap beats clever-and-metered for this workload?<\/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>honestly the pricing is what caught my eye, super competitive. one thing that would help me though is a built in way to snapshot a box and fork it, like a template system, so i can spin up a preconfigured env instead of setting up every vm from scratch each time. would save a ton of 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<\/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\/QTI2CZCO32XRUF\" class=\"app-title\">ACME.BOT<\/a><\/p>\n<div class=\"one-liner\">No-slop AI SEO agent that interviews you first<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">202<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ACME.BOT\u662f\u4e00\u6b3e\u901a\u8fc7\u201c\u5148\u91c7\u8bbf\u7528\u6237\u201d\u6765\u63d0\u53d6\u5176\u4e13\u4e1a\u89c1\u89e3\u3001\u518d\u751f\u6210\u7b26\u5408Google EEAT\u6807\u51c6SEO\u535a\u5ba2\u6587\u7ae0\u7684AI\u4ee3\u7406\u5de5\u5177\uff0c\u5e2e\u52a9\u4e2d\u5c0f\u4f01\u4e1a\u5728\u79fb\u52a8\u7aef\u4f4e\u95e8\u69db\u5730\u521b\u5efa\u6709\u6df1\u5ea6\u3001\u975e\u5343\u7bc7\u4e00\u5f8b\u7684\u9ad8\u8d28\u91cf\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\/e53bceda-9b30-4622-8ec4-6320f647b947.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\/e9f9aacc-52e7-4308-9dca-d2bf39bf1aa1.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\/70767b1e-e1d7-453c-af38-304e864e4c11.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\/9da4ae00-9355-4455-9493-b4583aa2bd50.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\/37665901-e267-4de7-aabb-69189626ed4a.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\/8bad90ef-b4cd-4a5b-b435-02fb04b78e85.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\/ab05416a-13b0-43ec-9647-9f2d2ab2c200.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\/cf099053-6a77-4e3d-bce3-c3b23bef15a8.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/2qz8K3D4b2M\"><source src=\"https:\/\/youtu.be\/2qz8K3D4b2M\" 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\">Marketing<\/span><br \/>\n            <span class=\"tag\">SEO<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI SEO\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4e13\u5bb6\u89c1\u89e3\u63d0\u53d6<\/span><br \/>\n            <span class=\"tag\">\u4eba\u673a\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u535a\u5ba2\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u5e93<\/span><br \/>\n            <span class=\"tag\">EEAT\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u79fb\u52a8\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u6df1\u5ea6\u7814\u7a76<\/span><br \/>\n            <span class=\"tag\">\u53cdAI\u5185\u5bb9<\/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\u91c7\u8bbf\u4f18\u5148\u201d\u907f\u514d\u4e86\u5185\u5bb9\u540c\u8d28\u5316\uff0c\u4f46\u4e5f\u63d0\u51fa\u82e5\u5e72\u5173\u952e\u95ee\u9898\uff1a\u91c7\u8bbf\u80fd\u5426\u5e2e\u7528\u6237\u81ea\u5df1\u5f62\u6210\u89c2\u70b9\uff1f\u6df1\u5ea6\u7814\u7a76\u7684\u6765\u6e90\u662f\u5426\u53ef\u5ba1\u67e5\uff1f\u5ba1\u6279\u5173\u5361\u80fd\u5426\u81ea\u5b9a\u4e49\u9636\u6bb5\uff1f\u4ea7\u54c1\u53cd\u9988\u5f3a\u8c03\uff0c\u901a\u7528AI\u8349\u7a3f\u5e38\u56e0\u7f3a\u4e4f\u4e00\u624b\u6570\u636e\u800c\u81f4\u4f7f\u521b\u59cb\u4eba\u653e\u5f03\u53d1\u5e03\uff0c\u5e0c\u671b\u5de5\u5177\u80fd\u771f\u6b63\u4fdd\u7559\u201c\u53ea\u6709\u6211\u624d\u6709\u7684\u6570\u636e\u201d\u548c\u771f\u5b9e\u89c2\u70b9\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                ACME.BOT\u7684\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u5176\u201c\u53cdSlop\u201d\u7684\u4eba\u673a\u534f\u4f5c\u673a\u5236\uff0c\u800c\u975e\u53c8\u4e00\u4e2aAI\u4ee3\u7b14\u5de5\u5177\u3002\u4e00\u53e5\u201cCompetent and generic at once\u201d\u7cbe\u51c6\u6233\u4e2d\u4e86\u5f53\u524dAI\u5185\u5bb9\u521b\u4f5c\u7684\u6b7b\u7a74\u2014\u2014\u5de5\u5177\u5316\u8f93\u51fa\u53ea\u80fd\u751f\u4ea7\u4fe1\u606f\u5bc6\u5ea6\u6781\u4f4e\u7684\u201c\u884c\u8d27\u201d\u3002\u800cACME.BOT\u901a\u8fc7\u201c\u5148\u91c7\u8bbf\u4f60\u201d\u8fd9\u4e2a\u53cd\u76f4\u89c9\u7684\u6d41\u7a0b\u8bbe\u8ba1\uff0c\u5c06\u521b\u59cb\u4eba\u771f\u5b9e\u7684\u4e00\u624b\u7ecf\u9a8c\u3001\u53cd\u76f4\u89c9\u89c2\u70b9\u3001\u5185\u90e8\u6570\u636e\u4f5c\u4e3a\u5185\u5bb9\u951a\u70b9\uff0c\u8bd5\u56fe\u89e3\u51b3\u4e09\u4e2a\u6839\u672c\u95ee\u9898\uff1a1\uff09\u5185\u5bb9\u201c\u795b\u9b45\u201d\u95ee\u9898\u2014\u2014\u7528\u6237\u4e0d\u4fe1\u4efb\u7f3a\u4e4f\u4e2a\u4eba\u7ecf\u9a8c\u7684AI\u5185\u5bb9\uff1b2\uff09\u5de5\u4f5c\u6d41\u6469\u64e6\u95ee\u9898\u2014\u2014\u7528\u624b\u673a\u7aef\u77ed\u95ee\u7b54\u66ff\u4ee3\u684c\u9762\u7aef\u957f\u7bc7\u7f16\u8f91\uff0c\u964d\u4f4e\u521b\u59cb\u4eba\u7684\u53c2\u4e0e\u95e8\u69db\uff1b3\uff09\u5185\u5bb9\u590d\u7528\u4e0e\u79ef\u7d2f\u95ee\u9898\u2014\u2014\u901a\u8fc7\u6301\u7eed\u6f14\u5316\u7684\u77e5\u8bc6\u5e93\u8ba9\u6bcf\u4e00\u6b21\u91c7\u8bbf\u90fd\u6bd4\u4e0a\u4e00\u6b21\u66f4\u6df1\uff0c\u5f62\u6210\u7ade\u4e89\u58c1\u5792\u3002\u4f46\u662f\uff0c\u5176\u4ea7\u54c1\u8bbe\u8ba1\u4e5f\u5b58\u5728\u6f5c\u5728\u8106\u5f31\u6027\uff1a\u5728\u4e25\u683c\u76d1\u7ba1\u7684B2B\u533b\u7597\u7b49\u5782\u76f4\u884c\u4e1a\uff0c\u91c7\u8bbf\u63d0\u53d6\u7684\u201c\u6df1\u5ea6\u201d\u80fd\u5426\u771f\u6b63\u62b5\u5fa1\u5408\u89c4\u98ce\u9669\uff0c\u662f\u5426\u80fd\u6301\u7eed\u8f93\u51fa\u6709\u4ef7\u503c\u7684\u6df1\u5ea6\u5185\u5bb9\u800c\u4e0d\u6ca6\u4e3a\u4e0b\u4e00\u4e2a\u201c\u91c7\u8bbf\u754c\u9762\u5305\u88c5\u7684AI\u751f\u6210\u5668\u201d\uff0c\u8fd8\u6709\u5f85\u7528\u6237\u957f\u671f\u68c0\u9a8c\u3002\u53e6\u5916\uff0c\u80fd\u5426\u5904\u7406\u90a3\u4e9b\u771f\u6ca1\u6709\u660e\u786e\u89c2\u70b9\u6216\u4e13\u5bb6\u7ecf\u9a8c\u7684\u521b\u59cb\u4eba\uff0c\u5728\u8fd9\u4e00\u573a\u666f\u4e0b\u4ea7\u54c1\u4ef7\u503c\u53ef\u80fd\u4f1a\u8fc5\u901f\u9000\u5316\u3002\u603b\u7684\u6765\u8bf4\uff0cACME.BOT\u63ed\u793a\u4e86\u4e00\u4e2a\u66f4\u672c\u8d28\u7684\u4ea7\u54c1\u54f2\u5b66\uff1a\u5728AI\u53ef\u4ee5\u8f7b\u6613\u751f\u4ea7\u201c\u5927\u91cf\u5185\u5bb9\u201d\u7684\u65f6\u4ee3\uff0c\u771f\u6b63\u7a00\u7f3a\u7684\u662f\u201c\u975e\u4f60\u4e0d\u53ef\u7684\u5185\u5bb9\u91c7\u96c6\u4e0e\u8f6c\u5316\u80fd\u529b\u201d\u3002\u5b83\u503c\u5f97\u5173\u6ce8\uff0c\u4f46\u4e0d\u53ef\u5ffd\u89c6\u5176\u4f9d\u8d56\u4f7f\u7528\u8005\u81ea\u8eab\u4e13\u4e1a\u79ef\u7d2f\u7684\u524d\u63d0\u6761\u4ef6\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\">ACME.BOT<\/span>\n                <\/div>\n<div class=\"comment-content\">ACME.BOT turns your expertise into no slop SEO articles. Answer a few questions on a topic (from your phone) and your first-hand experience shapes your blog post. AI handles the boring stuff. Like keyword research, illustrations, references, internal linking, and publishing cadence. Create helpful non-commodity content that also satisfies Google&#8217;s EEAT requirements.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thank you <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a> for hunting us here today!<\/p>\n<\/p>\n<p>I left my job as a <strong>search infrastructure engineer at Google<\/strong> to start building AI products as an indie maker almost a decade ago, with my first launch being on this very platform.<\/p>\n<\/p>\n<p>A big pain point I faced while running my SaaS was the ability to reliably run a business blog. My options were<\/p>\n<ol>\n<li>\n<p><strong>Hire content automation team \/ Hire freelancers&nbsp; <\/strong>&#8211; extremely expensive money-wise and time-wise. Not for most small-medium sized companies.<\/p>\n<\/li>\n<li>\n<p><strong>Duct tape an AI automation<\/strong> &#8211; time consuming and fragile \/ hard to get right and be consistent<\/p>\n<\/li>\n<li>\n<p><strong>\u201cSlop Cannon\u201d blog automation tools<\/strong> &#8211; dishonest to your audience \/ prone to search engine penalties<\/p>\n<\/li>\n<\/ol>\n<p>There had to be a way to reliably create content that takes the best of me (my opinions \/ counter-intutive thesis \/ expertise) and turn into posts that is genuinely useful to my audience &#8211; but it seemed like it just did not exist.<\/p>\n<\/p>\n<p>So, we built ACME.BOT &#8211; first for us. To be able to run our own blog with our own <a href=\"https:\/\/acme.bot\/ai-seo-agent\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AI SEO agent<\/a>.<\/p>\n<\/p>\n<p>Some key features:<\/p>\n<ul>\n<li>\n<p>\ud83d\udcac <strong>Chat driven <\/strong>\u2014 accessible via web chat \/ Telegram <strong>even on your phone<\/strong>!<\/p>\n<\/li>\n<li>\n<p>\ud83c\udf99\ufe0f <strong>Interview mode<\/strong> \u2014 conducts an interview on the topic to understand your perspective and build the basis for the post<\/p>\n<\/li>\n<li>\n<p>\ud83d\udd0d <strong>Deep Research<\/strong> \u2014 finds supporting facts and research backing your point of view<\/p>\n<\/li>\n<li>\n<p>\ud83d\uddd3\ufe0f <strong>Keyword research &amp; content calendar<\/strong><\/p>\n<\/li>\n<li>\n<p>\ud83d\udcca<strong> Diagrams <\/strong>\u2014 visually represent concepts<\/p>\n<\/li>\n<li>\n<p>\ud83c\udfa8 <strong>Brand Tone<\/strong> \u2014 learns your voice from reference material<\/p>\n<\/li>\n<li>\n<p>\u270d\ufe0f <strong>Humanizer <\/strong>\u2014 reduces the chance of being flagged as AI writing<\/p>\n<\/li>\n<li>\n<p>\ud83d\udea7 <strong>Approval Gates <\/strong>\u2014 makes sure human checks are in place when needed<\/p>\n<\/li>\n<li>\n<p>\ud83d\ude80 <strong>Auto-publish<\/strong> to Shopify and WordPress<\/p>\n<\/li>\n<li>\n<p>\ud83e\udde0 <strong>Knowledge Base<\/strong> \u2014 everything you do on the platform feeds an ever-improving repository of your business context<\/p>\n<\/li>\n<\/ul>\n<p>At the heart of ACME.BOT is Human-In-The-Loop mechanic that drives the whole blog writing process collaboratively with low friction. <strong>So you step in only where you are genuniely irreplacable. Let ACME.BOT handle the rest.<\/strong><\/p>\n<\/p>\n<p>Our initial set of users loved our features (like interviews, diagrams, deep research, run from phone).<\/p>\n<\/p>\n<p>Excited to be launching it here today!<\/p>\n<\/p>\n<p>As a part of our PH launch week we&#8217;re offering free trials (no CC required) to everyone from PH. Sign up for the <a href=\"https:\/\/acme.bot\/login?ref=ph-free-trial\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">free trial here<\/a>.<\/p>\n<\/p>\n<\/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\/@abhishek_iyer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhishek_iyer<\/a>&nbsp;The interview-first step is the interesting bet. Most AI SEO tools I&#8217;ve tried fail because they never learn what the business actually sells, so they optimize for traffic nobody converts. What does the interview capture that a good brief wouldn&#8217;t, and how do you keep it from drifting back to generic keyword output after a few runs?<\/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\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@abhishek_iyer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhishek_iyer<\/a>&nbsp;Congrats on the launch! Really like that this is built around actual first-hand expertise instead of just cranking out generic AI content, that EEAT problem is real and most tools just ignore it.<\/p>\n<p>Couple questions:<\/p>\n<p>With Interview mode, do I need to already have a clear opinion going in, or does it help me figure out what I actually think as we go? For Deep Research, do I get to see\/check the sources before they end up in the draft, or does it just fold them in automatically? Can I choose where the Approval Gates kick in (like after the outline vs. right before publish), or is that fixed? 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>Other co-founder here \ud83d\udc4b<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@abhishek_iyer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"abhishek_iyer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhishek_iyer<\/a> covered what it does, so I&#8217;ll just say why I wanted it to exist.<\/p>\n<p>What worked for my previous product was blog posts targeting the specific things people search right before they buy. It worked better than ads and outbound for us.<\/p>\n<p>We tried to scale that with writers, then with AI. Failed both times. <\/p>\n<p>Took me ages to see why. <\/p>\n<p>The posts that worked had things nobody else could write. Numbers from our own work, opinions from years of doing it. That never made it into a brief. So every draft needed hours of editing before I&#8217;d put my name on it, and that time never existed.&nbsp;<\/p>\n<\/p>\n<p>I generated a lot. I published almost none.&nbsp;<\/p>\n<p>The interview flow is our answer to that. It does the research, reads your docs, then asks you the few things it couldn&#8217;t know and your answers anchor the piece. <\/p>\n<p>Basically the tool I wanted when I was doing this by hand. <\/p>\n<p><strong>The feedback I most want<\/strong>: if you&#8217;ve tried AI writing tools and quietly stopped publishing the drafts, tell me why. That&#8217;s the failure mode we are builting against.<\/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\/@abhishek_iyer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhishek_iyer<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@dyuti\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dyuti<\/a>&nbsp;We did not abandon ours, we changed what the model was allowed to do. Ours used to handle the mechanical parts too &#8211; quotes and dashes, stage tracking, SEO fields &#8211; and the quality was uneven. Once that moved into scripts and it was left with only the writing, the drafts got better and cost less. The generic tone was not the model. It was how much non-writing work we had given 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>finaly we can ship blogs with our opinions!!<\/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\/@jiteshghanchi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jiteshghanchi<\/a>&nbsp;In a sea of AI Slop blogs &#8211; turns out human opinion is the most important missing piece!<\/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 that the questions come to your phone instead of forcing you into a desktop session, that small choice removes the friction of actually sitting down to write.<\/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\/@yeterezlb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yeterezlb<\/a>&nbsp;Yes &#8211; part of building this tool for ourselves (being the lazy people we are) meant that we wanted to remove all friction to posting &#8211; that includes opening a website \/ desktop session. The feeling of writing content pieces on the go is truly magical \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>what if I don&#8217;t have a strong opinion yet on the topic, does it help me form one.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@chloe_bennett\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chloe_bennett<\/a>&nbsp;Iteresting use case &#8211; like a good interviewer, it is designed to ask probing questions on a topic and will genuinely force you to think on a topic.<\/p>\n<p>By default it asks only three questions which might not be enough to form a strong opinion on the topic. You can, however ask it to do a longer interview and it will oblige.<\/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 the angle on using real expertise over generic AI slop, that&#8217;s genuinely refreshing. One thing that would seal it for me though, can you add a way to pull in my own raw voice notes or transcripts and have the bot match my writing style? Right now I&#8217;m worried the output might still sound like AI even with my answers.<\/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\/@sedat127428\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sedat127428<\/a>&nbsp;Couple of thingsr<\/p>\n<ol>\n<li>\n<p>Your raw notes can verbatim uploaded in the Knowledge Base it will be used \/ quoted as a part of research and forming perspectives.<\/p>\n<\/li>\n<li>\n<p>For the raw voice of the narration, at the moment we&#8217;re only have the option to learn voice from a reference URL that is already published. Based on your feedback will consider adding adding an upload option for the brand voice reference as well. <\/p>\n<\/li>\n<\/ol>\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>Honestly the questionnaire flow is way faster than I expected, answered like 6 prompts on my phone during a coffee break and it spit out a solid first draft. The internal linking is the part that surprised me, it actually found relevant stuff on my old posts.<\/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\/@alparslansril\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alparslansril<\/a>&nbsp;Awesome &#8211; glad you found it useful \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 interview-first approach is actually clever. Most SEO tools just take a brief and run with it, ends up generic. Does the interview data get reused for future content or each piece starts fresh?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Yes. All interviews go verbatim in a knowledge base. So not only does the content get reused.<\/p>\n<\/p>\n<p>Even the interview builds on top of the previous interviews so that you&#8217;re not asked similar set of questions again and again. Instead you get to go deeper into the topic with every interview.<\/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><a href=\"http:\/\/ACME.BOT\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ACME.BOT<\/a><\/p>\n<p>The \u201cinterviews you first\u201d approach is interesting. SEO agents often jump straight into execution, but the quality of the initial diagnosis probably determines whether the recommendations are actually useful. Curious to see how you handle cases where the founder\u2019s stated SEO problem isn\u2019t the real bottleneck.<\/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\/@aryan787544\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aryan787544<\/a>&nbsp;Great question, and worth clarifying a little about the purpose of the interview. It&#8217;s less about being an SEO diagnosis of your content, and more of a way to pull out your first-hand material, the opinion and numbers that make a post worth reading.<\/p>\n<\/p>\n<p>Research handles the diagnostic part separately. Keyword research and content calendars are based on search data from the audience, not from what you assume they search.<\/p>\n<\/p>\n<p>So if your stated problem is not the real bottleneck, the data usually surfaces that on its own.<\/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 interview-first angle makes sense as a way to avoid the generic AI-blog-post feel. how long is a typical interview session though &#8211; is this a quick 5 question voice thing on your phone, or does getting genuinely useful first-hand detail out of someone take more like a 20 minute back and forth?<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;The default is set to a short one, but it offers to go on if youre up for it &#8211; so it really does not have an upper limit on how long \/ deep the interview goes.<\/p>\n<\/p>\n<p>What genuinely surprised me is that how even a small 3 question back and forth can shape how an article turns out.<\/p>\n<\/p>\n<p>Another thing I&#8217;d like to point out is since all interviews go into the Knowledge Base there is continuity in the interviews &#8211; so over time the small interviews also add up to get really meaty.<\/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>Dyuti, you asked why people quietly stop publishing AI drafts, so here is mine: every draft read as competent and generic at once. No number I had earned, no opinion I would defend in a room, so putting my name on it felt like a small lie, and fixing that by hand cost more than writing from scratch.<\/p>\n<\/p>\n<p>The interview flow is the right fix, because the missing input was never the words, it was the first-hand material only I had.<\/p>\n<\/p>\n<p>One question, from running SEO in a narrow B2B healthcare niche: the posts that convert for me have almost no search volume and rank on depth, not keywords. Does the research chase volume, or can it work the low and zero-volume long-tail questions real buyers actually type?<\/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\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;<\/p>\n<p>On volume: So search volume is a lagging, averaged signal. In a narrow B2B niche the queries that convert often show as zero in every tool because the tools round down anything under ~10\/month. So no, the research doesn&#8217;t rank topics by volume alone. The interview + your knowledge base surface the questions your actual buyers ask (which you know and no keyword tool does), and the keyword research is there to shape the piece around how those questions get phrased <\/p>\n<p>Honestly, healthcare B2B specifically is a good stress test for us &#8211; esp. if you try it on one of those zero-volume posts, Would love to hear whether the interview pulled out the depth that would make the post useful and make it rank! <\/p>\n<p>PS: &#8220;Competent and generic at once&#8221; is going on a wall somewhere<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/discordapp.com\/assets\/0424e06a82d250e2.svg\" alt=\"\ud83d\ude42\" style=\"max-width: 100%\"><img decoding=\"async\" src=\"https:\/\/discordapp.com\/assets\/0424e06a82d250e2.svg\" alt=\"\ud83d\ude42\" style=\"max-width: 100%\"><\/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 interview-first approach is the real unlock here. Most AI SEO tools start from keywords and end up sounding like the same recycled SERP summary. Pulling in the founder\u2019s actual opinions, examples, and counterintuitive takes before drafting feels much closer to how useful blog posts get made.<\/p>\n<p>The GitHub\/Markdown connector is also interesting for custom blogs. Curious how much control users get over the final publishing flow: can teams keep approval gates and edits inside their existing repo workflow before anything goes live?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp; Thanks &#8211; that&#8217;s exactly the bet we made.<\/p>\n<p>Keyword-first tools converge on the same SERP summary because they all start from the same inputs. The interview is the only input your competitors can&#8217;t have.<\/p>\n<p>On the GitHub connector: yes &#8211; we have a review gate that waits for your feedback (as configured). Also drafts land in your repo as a pull request, so your existing review flow is the approval gate. Edit in the PR, request changes, merge when ready. Nothing goes live until the merge. <a href=\"http:\/\/ACME.BOT\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ACME.BOT<\/a>&#8216;s own approval gates still apply upstream (before the PR is even opened) if you want a check earlier in the pipeline<\/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 the interview mode and that the article is almost one shot keeping the needs of the brand (and that specific article) in mind.<\/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\/@varun_dhamija\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@varun_dhamija<\/a>&nbsp;Glad you liked the interview mode. The interviews compound over time in your Knowledge Base. So as you keep using <a href=\"https:\/\/ACME.BOT\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ACME.BOT<\/a> to write more blogs the context will keep building.<\/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 always wanted more control over what I post. This looks interesting. <\/p>\n<p>In the process of trying it out for my blog.<\/p>\n<p>Ps &#8211; how can I make it work for my custom built blog?<\/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\/@mitalee_rao\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mitalee_rao<\/a>&nbsp;Hi Mitalee &#8211; What custom stack are you on? If your custom blog is on Github \/ with markdown, we have a GitHub connector. You can try it from the connectors page.<\/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 interview-first step is the interesting bit \u2014 most SEO tools skip straight to generating commodity content. Once I answer the questions for a topic, does it persist that expertise as reusable context for future posts, or is each article a fresh interview? And for the publishing cadence, which CMSs can it actually push to versus just draft?<\/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\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;<\/p>\n<p>re. Storing interviews: Yes, all your interviews go inside a knowledge base. So any future documents can reference it and cite it.<\/p>\n<\/p>\n<p>re. Publishing: Right now we support WordPress, Shopify and GitHub.<\/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 thing I&#8217;m curious about is how you stop the content from sounding repetitive after a few months. Does the knowledge base help with that?<\/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\/@reda_roqai_chaoui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reda_roqai_chaoui<\/a>&nbsp;Yes, the Knowledge Base helps &#8211; every time we do an interview we end up going one level deeper. So the knowledge from the interviews builds up being a rich and deep repository of your opinions and takes over time. Based on that the later posts will end up going deeper into the takes as opposed to the initial ones.<\/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 list has a &#8220;Humanizer &#8211; reduces the chance of being flagged as AI writing&#8221; line right next to the EEAT\/no-slop pitch, and those two things sit a bit awkwardly together. if the content is genuinely built from a real interview with someone&#8217;s first-hand expertise, why does the output still need to be disguised from AI detectors? that reads like the underlying draft is more AI-generated-then-dressed-up than the interview-first framing suggests. is the humanizer mostly smoothing awkward phrasing, or actually working to defeat detection tools specifically?<\/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;The motivation is to not disguise &#8211; it&#8217;s actually to just iron out the awkward phrasing etc. The fact that it ends up beating AI detection is a side effect, not the explicit goal. <\/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>Is it like SEObot?<\/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\/@carlos_mendez16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlos_mendez16<\/a>&nbsp;Not sure which one you mean &#8211; since there are a handful of products that go by the same name \ud83d\ude42<\/p>\n<\/p>\n<p>What <a href=\"https:\/\/ACME.BOT\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ACME.BOT<\/a> is &#8211; proactive AI agent that sets your content schedule, pings you for your inputs when its writing, waits for your reviews \/ approvals and publishes. All from your phone. You end up publishing your own unique take ie. non-commodity content &#8211; not average of wikipedia  <\/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\/2L6BNQROL433FT\" class=\"app-title\">Gemini 3.6 Flash Family<\/a><\/p>\n<div class=\"one-liner\">Gemini 3.6 Flash, 3.5 Flash-Lite, and 3.5 Flash Cyber<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">188<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Gemini 3.6 Flash\u7cfb\u5217\u6a21\u578b\u4e13\u4e3a\u5927\u89c4\u6a21AI\u4ee3\u7406\u6784\u5efa\u800c\u8bbe\u8ba1\uff0c\u901a\u8fc7\u4f18\u5316\u6548\u7387\u3001\u964d\u4f4e\u5ef6\u8fdf\u548c\u63d0\u5347\u53ef\u9760\u6027\uff0c\u89e3\u51b3\u4e86\u4ee3\u7406\u5f00\u53d1\u4e2d\u54cd\u5e94\u901f\u5ea6\u6162\u3001\u6210\u672c\u9ad8\u3001\u5de5\u5177\u8c03\u7528\u4e0d\u7a33\u5b9a\u7b49\u6838\u5fc3\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\/f197209e-d6d6-41a5-95ac-b550a2697daa.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\/56c8a856-afe1-44c8-9089-45ba697b6683.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\/2f6032b8-cfdf-4779-ba94-ab080d54edda.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\/955e0d48-f3c0-483f-a911-f93a42057337.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\/c8380a92-385b-4861-992c-4fd028f2ac3a.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\/cbc61a11-d65c-4d07-b111-8b03b72f91f7.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\">SaaS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u5927\u8bed\u8a00\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7406\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u5ef6\u8fdf<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u53ef\u9760\u6027<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u5bb6\u65cf<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u62a4\u680f<\/span><br \/>\n            <span class=\"tag\">\u6210\u672c\u63a7\u5236<\/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\u80af\u5b9aFlash\u7cfb\u5217\u5728\u4ee3\u7406\u4efb\u52a1\u4e2d\u7684\u5ef6\u8fdf\u964d\u4f4e\uff0c\u4f46\u5c16\u9510\u6307\u51fa\u7f3a\u4e4f\u786c\u6027\u6570\u636e\uff08\u5ef6\u8fdf\u3001\u53ef\u9760\u6027\u57fa\u51c6\uff09\uff0c\u8ba4\u4e3a\u53d1\u5e03\u66f4\u50cf\u8425\u9500\u800c\u975e\u5de5\u7a0b\u3002\u5f00\u53d1\u8005\u5f3a\u70c8\u547c\u5401\u63d0\u4f9b\u7edf\u4e00\u4eea\u8868\u76d8\uff0c\u4ee5\u5b9e\u65f6\u5bf9\u6bd4\u5404\u53d8\u4f53\u7684\u6210\u672c\u3001\u5ef6\u8fdf\u548c\u63a8\u7406\u8d28\u91cf\uff0c\u5e76\u5e0c\u671b\u660e\u786e\u5b89\u5168\u6027\u4e0e\u4f4e\u62d2\u7edd\u7387\u7684\u5e73\u8861\u7b56\u7565\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                \u6b64\u6b21\u53d1\u5e03\u770b\u4f3c\u662f\u4e00\u6b21\u201c\u5168\u5bb6\u6876\u201d\u5f0f\u8fed\u4ee3\uff0c\u5b9e\u5219\u66b4\u9732\u4e86Google\u5728AI Agent\u8d5b\u9053\u4e0a\u7684\u7126\u8651\u4e0e\u77ed\u677f\u3002Gemini 3.6 Flash\u7cfb\u5217\u5c06\u201c\u6548\u7387\u3001\u5ef6\u8fdf\u3001\u53ef\u9760\u6027\u201d\u4f5c\u4e3a\u6838\u5fc3\u5356\u70b9\uff0c\u5207\u4e2d\u4e86\u5f00\u53d1\u8005\u6784\u5efa\u591a\u6b65\u9aa4\u4ee3\u7406\u65f6API\u54cd\u5e94\u4e0d\u7a33\u5b9a\u3001\u5de5\u5177\u8c03\u7528\u65ad\u88c2\u7684\u5207\u80a4\u4e4b\u75db\u3002\u7136\u800c\uff0c\u6b63\u5982\u8bc4\u8bba\u533a\u591a\u4f4d\u8d44\u6df1\u5f00\u53d1\u8005\u6240\u6307\u51fa\u7684\uff0c\u6574\u4e2a\u53d1\u5e03\u5145\u65a5\u7740\u201c\u5f62\u5bb9\u8bcd\u201d\u800c\u975e\u201c\u6570\u5b57\u201d\u3002\u6ca1\u6709\u516c\u5f00\u7684\u5ef6\u8fdf\u767e\u5206\u4f4d\u56fe\u3001\u6ca1\u6709\u538b\u529b\u6d4b\u8bd5\u4e0b\u7684\u5de5\u5177\u8c03\u7528\u4e00\u81f4\u6027\u62a5\u544a\u3001\u6ca1\u6709\u8de8\u53d8\u4f53\u7684\u751f\u4ea7\u6210\u672c\u5bf9\u6bd4\u8868\uff0c\u6240\u8c13\u201c\u4e3a\u89c4\u6a21\u800c\u751f\u201d\u7684\u5ba3\u8a00\u5c31\u663e\u5f97\u82cd\u767d\u65e0\u529b\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0cFlash-Lite\u4e0eFlash-Cyber\u7684\u5b9a\u4f4d\u6a21\u7cca\uff0c\u7528\u6237\u9700\u8981\u81ea\u884c\u4ece\u6563\u4e71\u6587\u6863\u4e2d\u62fc\u51d1\u5dee\u5f02\uff0c\u8fd9\u66b4\u9732\u4e86\u4ea7\u54c1\u77e9\u9635\u7f3a\u4e4f\u7edf\u4e00\u89c4\u5212\u3002\u8fd9\u79cd\u201c\u5148\u53d1\u5e03\u3001\u518d\u7ec6\u5316\u201d\u7684\u4f5c\u98ce\uff0c\u5728\u7ade\u4e89\u767d\u70ed\u5316\u7684\u6a21\u578b\u5e02\u573a\u4e2d\u662f\u81f4\u547d\u7684\u4fe1\u4efb\u6d88\u8017\u3002\u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u6a21\u578b\u672c\u8eab\uff0c\u800c\u5728\u4e8eGoogle\u80fd\u5426\u5151\u73b0\u627f\u8bfa\uff1a\u63d0\u4f9b\u4e00\u5957\u53ef\u89c2\u6d4b\u3001\u53ef\u8c03\u8bd5\u3001\u53ef\u9884\u6d4b\u7684\u5de5\u7a0b\u5316\u5de5\u5177\u94fe\u3002\u5426\u5219\uff0c\u518d\u5feb\u7684Flash\u4e5f\u53ea\u662f\u505c\u7559\u5728\u6f14\u793aDemo\u4e2d\u7684\u201c\u95ea\u5149\u201d\uff0c\u65e0\u6cd5\u5728\u590d\u6742\u7684\u751f\u4ea7\u7cfb\u7edf\u4e2d\u70b9\u4eae\u7a33\u5b9a\u7684Agent\u4e4b\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\">Gemini 3.6 Flash Family<\/span>\n                <\/div>\n<div class=\"comment-content\">We\u2019re introducing new Gemini models, including Gemini 3.6 Flash, 3.5 Flash-Lite and 3.5 Flash Cyber. Our newest Gemini models deliver the efficiency, latency, and reliability to build AI agents at scale.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats<a href=\"https:\/\/www.producthunt.com\/@sundar_pichai\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"sundar_pichai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sundar_pichai<\/a>on the launch. Exciting to see 3.5 Flash Cyber. Since it&#8217;s gated to governments\/trusted partners for now; is wider access on the roadmap, or is this meant to stay a permanent limited-access tool given the dual-use risk?<\/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\">How the reasoning of 3.6 compare to previous 3.5 flash models for task like high level coding, edits, fixes and reviews?<\/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 gave the new Flash a spin on a quick agent task and the latency drop was honestly noticeable, made the whole loop feel snappier than I expected.<\/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>Adding first-class observability dashboards built into the model API would be huge. Real-time token usage, latency breakdowns, and failure pattern detection per agent run would make it way easier to debug and optimize at scale.<\/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<blockquote>\n<p>The positioning around \u201cefficiency, latency, and reliability for agents at scale\u201d feels incomplete. Right now every claim is qualitative no hard numbers, no latency charts, no reliability benchmarks, no failure\u2011mode transparency.<\/p>\n<p>Developers building multi\u2011step agents don\u2019t just need <em>fast<\/em> models; they need <em>predictable<\/em> tool\u2011use behaviour across long chains. Without published consistency metrics, uptime guarantees, or real\u2011world agent stress tests, it\u2019s impossible to evaluate whether 3.6 Flash actually solves the reliability gaps that break production agents.<\/p>\n<p>Also: Flash\u2011Lite and Flash\u2011Cyber are introduced as if they\u2019re cleanly differentiated, but the docs force us to dig through scattered pages to compare cost, reasoning quality, and safety behaviour. A unified dashboard isn\u2019t a \u201cnice to have\u201d it\u2019s essential.<\/p>\n<p>Right now this launch reads more like marketing than engineering. If Google wants developers to commit workloads, we need numbers, not adjectives.<\/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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Been testing flash models quite heavily lately. The lite variant is interesting for high volume use cases where cost matters more than raw performance. How does 3.6 compare to 3.5 on reasoning tasks?<\/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 focus on efficiency for agent workflows. One thing that would help me as a developer is a built-in token usage dashboard per model variant, so I can compare cost and latency between Flash, Flash-Lite, and Flash Cyber in real time during testing without needing separate tooling. Would save a lot of guesswork when picking the right model for each part of a pipeline.<\/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 unified dashboard to compare latency, cost, and quality across the three Flash variants side by side would be huge. Right now I have to dig through docs and run my own benchmarks to figure out whether Flash Lite or Flash Cyber fits a given workload, and a built-in comparison view with sample prompts would save a ton of evaluation time before committing to a 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The latency\/reliability positioning is the part that matters most for agents. Cheap tokens are nice, but agents fall apart fast when tool calls get slow or flaky.<\/p>\n<p>Curious how you\u2019re measuring reliability here: is it mostly uptime\/API stability, or are you also tracking things like consistent tool-use behavior across long multi-step agent runs?<\/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>BTW, I&#8217;m also curious how you balance &#8220;stronger safety guardrails&#8221; with &#8220;fewer refusals&#8221; cos those feel like they&#8217;d pull in opposite directions. How do you know when you&#8217;ve got that balance right?<\/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\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/B7HLNBLKWG3ZG2\" class=\"app-title\">MonoCloud for Startups<\/a><\/p>\n<div class=\"one-liner\">One identity layer for your customers, APIs, and agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">176<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>MonoCloud\u4e3a\u521d\u521b\u4f01\u4e1a\u63d0\u4f9b\u4e00\u4e2a\u7edf\u4e00\u8eab\u4efd\u5c42\uff0c\u4e0d\u4ec5\u7ba1\u7406\u5ba2\u6237\u767b\u5f55\uff0c\u8fd8\u6388\u6743\u548c\u5ba1\u8ba1API\u3001AI\u4ee3\u7406\u7684\u8bbf\u95ee\u6743\u9650\uff0c\u89e3\u51b3\u591a\u5de5\u5177\u62fc\u51d1\u5e26\u6765\u7684\u5b89\u5168\u4e0e\u5408\u89c4\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\/d3f99542-cecf-455b-923f-0af901419848.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/c7mz4YfrqXo?si=vZB1sXXUqprnXwST\"><source src=\"https:\/\/youtu.be\/c7mz4YfrqXo?si=vZB1sXXUqprnXwST\" 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\/a3cd5335-c17d-435b-9c82-9b4795a2146c.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\/08242eb5-bd17-4e63-a61e-88f915a782ab.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\/eae51f10-ced6-49d0-8577-c0d01be3bfae.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\/e6860483-0768-4347-8b62-e76fcaf0ba45.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\/2ab7161b-4899-46f8-b5dd-7453705f9f31.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\/1261681f-6824-43ea-ada8-c279f32307bd.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\/d69aaf43-fb94-4461-92e4-c79ce8797107.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\/4e3d66c7-4066-4c2b-95ce-4d588a2a2c31.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\">SaaS<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Security<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7edf\u4e00\u8eab\u4efd\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u6237\u8eab\u4efd\u8ba4\u8bc1<\/span><br \/>\n            <span class=\"tag\">API\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406\u6743\u9650<\/span><br \/>\n            <span class=\"tag\">\u7ec6\u7c92\u5ea6\u6388\u6743Cedar<\/span><br \/>\n            <span class=\"tag\">\u8bc1\u4e66\u7ed1\u5b9amTLS<\/span><br \/>\n            <span class=\"tag\">SSO<\/span><br \/>\n            <span class=\"tag\">\u5ba1\u8ba1\u6eaf\u6e90<\/span><br \/>\n            <span class=\"tag\">M2M\u901a\u4fe1<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u4e00\u5e74<\/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\u6ce8AI\u4ee3\u7406\u7684\u95ee\u8d23\u6027\u3001\u57fa\u4e8eCedar\u7684\u6388\u6743\u4e0b\u653e\u3001mTLS\u64a4\u9500\u5ef6\u8fdf\u3001SPIFFE\u8de8\u73af\u5883\u517c\u5bb9\u3001\u5b9a\u4ef7\u8fde\u7eed\u6027\u53ca\u4ee3\u7406\u94fe\u5ba1\u8ba1\u3002\u56e2\u961f\u56de\u5e94\u5f3a\u8c03\u652f\u6301\u5f15\u7528\u4ee4\u724c\u5373\u65f6\u64a4\u9500\u3001\u4e0b\u653e\u6743\u9650\u4e0d\u8d85\u7528\u6237\u4e0a\u9650\u3001Cedar\u7b56\u7565\u5f3a\u5236\u6267\u884c\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                MonoCloud\u5207\u4e2d\u7684\u662f\u4e00\u4e2a\u5c34\u5c2c\u7684\u4e2d\u95f4\u5730\u5e26\uff1a\u5c0f\u5de5\u5177\u6b62\u4e8e\u767b\u5f55\uff0c\u5927\u4f01\u4e1a\u65b9\u6848\u81c3\u80bf\u8d35\u80c4\u3002\u5b83\u58f0\u79f0\u7528Cedar\u505a\u7ec6\u7c92\u5ea6\u6388\u6743\u3001mTLS\u505a\u4fe1\u4efb\u951a\u70b9\u3001SPIFFE\u505a\u8eab\u4efd\u8bc1\u660e\uff0c\u4ece\u4e00\u5f00\u59cb\u5c31\u628aAI\u4ee3\u7406\u5217\u4e3a\u201c\u4e00\u7b49\u516c\u6c11\u201d\uff0c\u8bd5\u56fe\u586b\u4e0a\u5927\u591a\u6570\u5e73\u53f0\u5bf9\u201c\u4e8b\u540e\u6388\u6743\u4e0e\u5ba1\u8ba1\u201d\u7684\u6f20\u89c6\u3002\u8fd9\u786e\u5b9e\u662f\u6709\u773c\u5149\u7684\u9009\u62e9\u2014\u2014\u5f53\u4ee3\u7406\u5f00\u59cb\u81ea\u4e3b\u884c\u52a8\uff0c\u8c01\u8d1f\u8d23\u548c\u5982\u4f55\u64a4\u9500\u6210\u4e86\u81f4\u547d\u95ee\u9898\uff0cMonoCloud\u81f3\u5c11\u7ed9\u51fa\u4e86\u5b8c\u6574\u7684\u6280\u672f\u89e3\u7b54\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u4e5f\u5728\u6b64\uff1a\u5b83\u628a\u201c\u8eab\u4efd\u201d\u505a\u6210\u4e86\u51c6\u64cd\u4f5c\u7cfb\u7edf\u7ea7\u7684\u5e73\u53f0\uff0c\u800c\u975e\u53ef\u63d2\u62d4\u7684\u6a21\u5757\u3002\u5f00\u53d1\u56e2\u961f\u8981\u8003\u8651\u7684\u662f\uff0c\u662f\u5e73\u767d\u589e\u6dfb\u4e00\u4e2a\u5168\u6743\u4fe1\u4efb\u7684\u4e2d\u95f4\u5c42\uff0c\u8fd8\u662f\u5fcd\u53d7\u4e94\u5957\u5de5\u5177\u7684\u62fc\u51d1\u98ce\u9669\uff1f\u6846\u67b6\u591f\u201c\u610f\u89c1\u201d\u5c11\uff0c\u4f46\u7ed1\u5b9a\u6df1\u2014\u2014Cedar\u7b56\u7565\u5fc5\u987b\u4e0eMonoCloud\u7684\u4ee4\u724c\u53d1\u884c\u6302\u94a9\uff0c\u624d\u80fd\u5b8c\u6574\u53d1\u6325\u3002\u8fd9\u610f\u5473\u7740\u4e00\u5f00\u59cb\u9009\u5b83\uff0c\u540e\u7eed\u9003\u79bb\u5c06\u6210\u672c\u9ad8\u6602\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u9690\u5fe7\u662f\uff1a\u514d\u8d39\u4e00\u5e74\u517b\u719f\u4e86\u7528\u6237\uff0c\u4f46\u6536\u8d39\u540e\u80fd\u5426\u7eed\u547d\uff1f\u7559\u8a00\u533a\u5df2\u6709\u4eba\u95ee\u201c\u7b2c\u4e8c\u5e74\u6da8\u4ef7\u591a\u731b\u201d\uff0c\u5c3d\u7ba1\u56e2\u961f\u7b54\u5f97\u5728\u60c5\u5728\u7406\uff0c\u4f46\u5b9a\u4ef7\u654f\u611f\u671f\u7684\u521d\u521b\u4f01\u4e1a\u7ec8\u7a76\u662f\u8d70\u662f\u7559\uff0c\u53d6\u51b3\u4e8e\u4ea7\u54c1\u80fd\u5426\u771f\u6b63\u6210\u4e3a\u201c\u4e0d\u53ef\u66ff\u4ee3\u7684\u57fa\u5efa\u201d\u2014\u2014\u800c\u975e\u53e6\u4e00\u4e2a\u201c\u514d\u8d39\u4e0a\u763e\uff0c\u4ed8\u8d39\u6212\u6bd2\u201d\u7684SAAS\u9677\u9631\u3002\u6b64\u5916\uff0c\u5f53\u524d\u4ec5\u670910\u4e2a\u8bbe\u8ba1\u4f19\u4f34\u9a8c\u8bc1\uff0c\u5c1a\u7f3a\u5927\u89c4\u6a21\u538b\u6d4b\u4e0b\u7684\u7a33\u5b9a\u6027\u4e0e\u6027\u80fd\u6570\u636e\uff0c\u8bc4\u8bba\u533a\u5df2\u6709\u4eba\u5173\u6ce8\u5355\u70b9\u6545\u969c\u3002\u6574\u4f53\u770b\uff0c\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u4ea7\u54c1\u5c1a\u5728\u65e9\u671f\uff0c\u503c\u5f97\u8ddf\u8fdb\uff0c\u4e0d\u5fc5\u76f2\u4fe1\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\">MonoCloud for Startups<\/span>\n                <\/div>\n<div class=\"comment-content\">MonoCloud is one identity layer for your customers, your APIs, and your agents. Most tools stop at a login box. We go past login into authorization and accountability: decide exactly what every user, service, and AI agent can access, prove what it did, and revoke it in an instant. Fine-grained Cedar authorization, passkeys and SSO, API protection, M2M, and mTLS with certificate-bound trust, all on one platform. Startups get the full platform free for one year.<\/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 Riya here. I do product marketing at MonoCloud, and I am one of the makers.<\/p>\n<\/p>\n<p>Most of my week is spent talking to founders about auth, and I keep seeing the same arc. In the beginning nobody wants to think about it, so they drop in a login box, ship, and move on. <\/p>\n<\/p>\n<p>Six months later, those same people are drowning in it. <\/p>\n<\/p>\n<p>A customer wants SSO. <\/p>\n<p>A security review shows up with forty questions. <\/p>\n<p>Their services need to talk to each other safely. And their AI agents are now acting on behalf of users with no real control over what they can reach.<\/p>\n<\/p>\n<p>The reason it keeps happening is that most identity tools were built for one slice of the problem. <\/p>\n<\/p>\n<p>The easy ones stop at the login screen. <\/p>\n<\/p>\n<p>The enterprise ones are powerful but slow and expensive to adopt. So teams end up owning the hard middle themselves, which is the exact part they have no time to build.<\/p>\n<\/p>\n<p>MonoCloud covers all of it on one platform, your customers, your APIs, and your agents, from your first user to enterprise scale. Not just who signs in, but what every user, service, and agent is allowed to do afterwards, with the ability to prove it and pull it back in an instant.<\/p>\n<\/p>\n<p>All of it is live today, not a demo or a waitlist. Ten design partners across SaaS and AI companies are already building on it.<\/p>\n<\/p>\n<p>\ud83d\udc49 If you are a startup, you get the full platform free for a year, every feature, no gates. Apply here: <a href=\"https:\/\/tally.so\/r\/ZjKMKB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MonoCloud for Startups &#8211; Free for One Year<\/a> \ud83d\udc48<\/p>\n<\/p>\n<p>And if identity is central to what you are building and you want to shape where this goes, we are opening a few more design partner spots. Leave a comment or reach me on LinkedIn (link in profile).<\/p>\n<\/p>\n<p>I will be here all day and would genuinely love to know how you are handling identity for your AI agents right now, and where it falls apart first. That is the conversation I care about most.<\/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>Hey Product Hunt \ud83d\udc4b Vishal here, founder of MonoCloud.<br \/>Every company is racing to put AI agents into production. Almost none of them can answer one simple question. When an agent does something it should not, who is accountable?<\/p>\n<p>The log will say an agent did it. But an agent has no intent. Someone gave it that access, and today most teams cannot say who, cannot prove it, and cannot pull it back fast. That gap is the biggest unsolved problem in identity right now, and it is why I built MonoCloud.<\/p>\n<p>I have built authentication into products four times over my career. Every time, the login box took a weekend and everything that mattered took months. Passkeys alone were over 800 engineering hours before they were production ready. I learned the hard way that identity is not a feature you bolt on. It is infrastructure, and it decides whether you can be trusted.<\/p>\n<p>MonoCloud is that infrastructure. One platform for your customers, your APIs, and your agents, where you decide exactly what each can access, prove what it did, and revoke it in an instant.<\/p>\n<p><strong>Two convictions shaped it, and I still stand by both:<\/strong><\/p>\n<p>\ud83d\udd39 Build on open standards, not shortcuts. Authorization runs on Cedar, workload identity on SPIFFE, and trust on mTLS with certificate-bound tokens. Anyone can demo a policy dashboard. Far fewer hold up in a real security review.<\/p>\n<p>\ud83d\udd39 Treat agents as first-class identities from day one. Every agent gets a scoped identity, acts on behalf of a user only within the limits you set, and leaves an audit trail you can revoke in one click.<\/p>\n<p>All of it is live today. Ten design partners across SaaS and AI companies are building on it now.<\/p>\n<p>\ud83d\udc49 Startups get the full platform free for one year, every premium feature, no gates. Apply here: <a href=\"https:\/\/tally.so\/r\/ZjKMKB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MonoCloud for Startups &#8211; Free for One Year<\/a> \ud83d\udc48<\/p>\n<p>If identity is core to what you are building, we are opening a few more design partner spots. Leave a comment or reach me on LinkedIn.<\/p>\n<p>I will be here all day. The one thing I want to hear is this. How are you handling identity for your agents today, and what happens the first time one does something it should not?<\/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\/@maganuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maganuk<\/a>&nbsp;The accountability question is the real one. &#8220;Accountability, judgment, and ownership still belong to people&#8221; isn&#8217;t just a nice line, it&#8217;s the actual gap most teams are ignoring while they rush agents into production.<\/p>\n<p>Here&#8217;s the layer I&#8217;d want to understand for client delivery work specifically: when we build an agent for a client, who&#8217;s the principal it&#8217;s acting on behalf of, the client&#8217;s end user, or us as the vendor who built and deployed it? That distinction matters the moment something goes wrong and someone has to own 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>Hey Product Hunt! \ud83d\udc4b Shivangi here, building MonoCloud with our founder Vishal @monocloud.<\/p>\n<p>Auth always looks finished the day login works, but it never is. A customer asks for SSO. Your services need machine-to-machine keys. RBAC roles stop being able to express what you actually need. And now AI agents are acting on behalf of your users, and nobody can say what they are allowed to touch. Each piece gets bolted on separately, and a year later &#8220;auth&#8221; is five half-built tools held together with glue.<\/p>\n<p>We built MonoCloud so you do not do that. It is one identity layer for your customers, your APIs, and your agents. Login is table stakes. The part that matters is what happens after: you decide exactly what every user, service, and agent can access, prove what it did, and revoke it in an instant, before an agent is ever issued a token.<\/p>\n<p>Most tools make you pick a side. The login-box platforms stop at the sign-in screen. The enterprise suites are powerful but heavy and built for large companies only. MonoCloud is the one platform that covers customer identity, API protection, and agent identity together, from your very first user all the way to enterprise scale.<\/p>\n<p><strong>What you can do with it:<\/strong><\/p>\n<p>\ud83d\udd10 Every way your customers sign in: passwordless, passkeys, OTP, social, and SSO, ready on day one<br \/>\ud83e\udde9 Fine-grained authorization with Cedar, applied at the token, not just roles that stop being granular the moment your app grows<br \/>\ud83e\udd16 Identity for AI agents and workloads, with scoped access, on-behalf-of delegation, M2M, and SPIFFE, so an agent can only ever do what you allowed<br \/>\ud83d\udcdc Certificate-bound trust and mTLS with instant revocation, plus full audit logs, so you can prove who did what and cut off access the second you need to<br \/>\ud83d\udee1\ufe0f Step-up authentication that forces fresh verification before high-risk actions like payments, transfers, or admin changes, plus attack and brute-force protection built in<\/p>\n<p>We are building with 10 design partners across SaaS and AI companies right now, and their feedback is shaping what ships next. If identity is core to what you are building and you want to shape where this goes, we are opening a few more design partner spots. Leave a comment here, or reach me on LinkedIn, and I will follow up.<\/p>\n<p>\ud83d\udc49 For the Product Hunt community, startups get the full MonoCloud platform free for one year, every premium feature, no gates. Apply here: <a href=\"https:\/\/tally.so\/r\/ZjKMKB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/tally.so\/r\/ZjKMKB<\/a> \ud83d\udc48<\/p>\n<p>We will be here all day. The one thing I would really love your feedback on: how are you handling identity for AI agents right now, and where does it break first? That is the piece we are building hardest, and honest answers help us more than any upvote.<\/p>\n<p>I am happy to get into anything, the product or the roadmap.<\/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\">@roguetink One platform for users APIs and AI agents sounds super convenient but how do you prevent single point of failure issues as workloads scale heavily?<\/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 identity is one of those problems that only looks simple until you have to build it yourself Really Building authentication and identity is never as straightforward as it seems Excited to see products taking a fresh approach here Congratulations to the team and hope you have a fantastic launch<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@suryansh_tiwari2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suryansh_tiwari2<\/a>&nbsp;thank you so much. it always looks like a solved problem until you&#8217;re actually in it \ud83d\ude04 really appreciate the 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>The agent-on-behalf-of-user piece is what most auth stacks punt on, so going straight at it with Cedar is the right call. Concretely: when an AI agent acts for a user, is its access always a downscoped subset of that user&#8217;s own permissions (so it can never exceed what the human could do), and can you express that delegation in a single Cedar policy? And if you revoke mid-task, does an already-issued agent token stop on the next call or only at expiry?<\/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\/@hazy0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hazy0<\/a>&nbsp;Good question, this is exactly what our API Access Policies are built for. Cedar runs at token issuance (the IssueAccessToken action), so it gates what the agent can get: which API, which scopes, which token settings.<\/p>\n<p>&nbsp;<br \/>Downscoping: yes, as a ceiling you author, default-deny, and forbid overrides permit. The agent is the principal, the user rides along as context.user, and requested scopes come in as context.requested_api_scopes, so a single permit can require that a real user is present, that the user is in an eligible group, and that requested scopes never exceed the ceiling you set.&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Mid-task revocation depends on token type. Reference (opaque) tokens are checked against server state on every call, so revocation is immediate, the next call fails. JWTs are self-contained and live until exp. For agents that need instant revocation: set AccessTokenType = Reference, keep lifetimes short, and optionally BindTokensToSession so ending the user&#8217;s session kills the agent&#8217;s tokens too. Policies are re-evaluated on every issuance and refresh either way, so pulling the agent&#8217;s permit stops new tokens at the next refresh \u2014 only already-minted JWTs survive to expiry.<\/p>\n<p>&nbsp;<\/p>\n<p>Happy to walk through your exact agent setup on a call.<\/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>Interesting that mTLS with certificate-bound tokens is a first-class thing here rather than an enterprise add-on. Most CIAM tools treat that as an afterthought. What&#8217;s the story for revocation latency \u2014 how fast does a revoked cert actually stop working in practice?<\/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\/@maurya_abhiranjan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maurya_abhiranjan<\/a>&nbsp;Revocation is checked live at validation time, before a client can get or use another token, not left until the token expires. You&#8217;ve got live OCSP for status, CRLs, and a local deny list to block a cert outright. How fast it actually takes effect comes down to the cache windows you control on the trust store, OCSP status is cached five minutes by default and CRLs fifteen, and you can tighten those toward near-instant. The full set of mTLS validation and revocation settings is laid out here if you want it, <a href=\"http:\/\/monocloud.com\/features\/mtls\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">monocloud.com\/features\/mtls<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Amazing, the product looks so good, the tiers are so generous, so excited to try it out \ud83e\udd73<\/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\">@itsharshag&nbsp;Thank you. Would love for you to try it and share feedback with us.<\/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>Is the SPIFFE workload identity tied to a specific runtime, or does it work across mixed environments (some services on Kubernetes, some on bare VMs)? Trying to figure out how much of my setup I&#8217;d have to standardize.<\/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\/@suyash_kr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suyash_kr<\/a>&nbsp;Not tied to a runtime, it&#8217;s SPIFFE-based, so anything with a valid SVID works, whether it&#8217;s a Kubernetes pod or a workload on a VM. If they share a trust domain one trust store covers both, and if they&#8217;re separate domains it&#8217;s one trust store each. The setup walkthrough is here if it helps, <a href=\"http:\/\/monocloud.com\/docs\/guides\/workload-identity\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">monocloud.com\/docs\/guides\/workload-identity<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>First of all a great congrats to <a href=\"https:\/\/www.producthunt.com\/@riya_pariyar\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"riya_pariyar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@riya_pariyar<\/a> <a href=\"https:\/\/www.producthunt.com\/@roguetink\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"roguetink\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roguetink<\/a> <a href=\"https:\/\/www.producthunt.com\/@maganuk\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"maganuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maganuk<\/a> <br \/>I am just curious that you&#8217;ve said you&#8217;re building the auth layer for agentic products &#8220;from the ground up&#8221; instead of bolting agent support onto human auth. Concretely, what does a token look like when an agent calls another agent three steps downstream? How do you actually scope and audit that so the blast radius doesn&#8217;t become &#8220;every permission that token ever carried&#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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@arduvey29\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arduvey29<\/a>&nbsp;Thanks! A token never inherits permissions, it&#8217;s decided fresh at every issuance under default-deny, and you can forbid a sensitive API from ever sharing a token with others, so a token can&#8217;t quietly widen to reach something it shouldn&#8217;t. Tokens issued over mTLS, including X.509 SVIDs, are certificate-bound, so a copy is useless without the matching cert. If you want to see how that&#8217;s written, there&#8217;s a full guide with example policies at <a href=\"http:\/\/monocloud.com\/docs\/guides\/api-access-policy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">monocloud.com\/docs\/guides\/api-access-policy<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like the emphasis on authorization over authentication. How opinionated is MonoCloud about application architecture? Could a team adopt just the Cedar authorization layer while keeping their existing auth provider, or is the biggest value unlocked by using the full identity stack?<\/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\/@tarqiya_forgah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarqiya_forgah<\/a>&nbsp;Not very opinionated, it&#8217;s standard OAuth and OIDC with drop-in SDKs, so you adopt it piece by piece rather than rewriting your app. On the Cedar part, to be precise, the authorization policies are evaluated at the moment MonoCloud issues the access token, so the authz layer and token issuance go together. The full value shows up when MonoCloud is in the token path for the APIs you want to govern. If you&#8217;re thinking of running only the policy layer on top of a different auth provider, I&#8217;d love to get into your exact 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>the one year free offer for startups is honestly such a smart move, basically lets you build the whole stack without cobbling together five different auth tools.<\/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\">@fakkelek20444 That&#8217;s the exact sentence we want people saying a year from now. Cobbling five tools together is where most identity bugs are born, the seams between tools are where things fall through. Thanks Fatma.<\/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 pricing work after year one? Curious if startups that grow during the free period end up sticking or if the jump to paid feels steep.<\/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\">@talhakhalidmtk Fair question and honestly the one we thought hardest about. After the year, startups move to the plans. The goal is that by then you&#8217;re paying because the product earned it, not because migration is painful. If the jump ever feels steep for a team, we&#8217;d rather talk than lose them, so reach out before the year ends and we&#8217;ll figure it out.<\/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 customer\/API\/agent identity angle is timely because agent access can blur normal user boundaries. How do teams inspect which identity performed an action, which permissions were used, and whether the action came from a human or an agent?<\/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\/@yaroslav_stelmakh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yaroslav_stelmakh<\/a>&nbsp;Good question, and it&#8217;s a real gap most setups have. Every token request is audited with the acting principal, the trust store and certificate context for mTLS, and the policy evaluation itself, so you can see who acted and whether it was allowed. Human versus agent is built into the model rather than guessed, clients carry a type of either application or agent, and machine-to-machine requests carry no user in the request, so an agent action looks structurally different from a human one. The permissions side is the Cedar decision that gets logged with the request. The client-type and context details are here if you want them, <a href=\"http:\/\/monocloud.com\/docs\/guides\/api-access-policy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">monocloud.com\/docs\/guides\/api-access-policy<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly the one free year for startups is kind of a big deal, but what really stands out is the mTLS with certificate-bound trust. most platforms treat that as an enterprise add-on and bury it in pricing. shipping it on day one for early teams shows you actually thought about the security stack instead of bolting it on 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\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kervangamz80440\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kervangamz80440<\/a>&nbsp;Thanks, that was a deliberate choice. Certificate-bound tokens make a stolen token useless without the key, and that shouldn&#8217;t be something you only get once you&#8217;re big enough for an enterprise tier. The free year for startups includes it, so early teams can build on cert-bound trust from the start instead of retrofitting it later.<\/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>Identity layer that covers customers, APIs AND agents in one place is actually pretty rare. Most solutions handles only one or two of those well. Free for a year is generous, what happens at the end?<\/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\">@abdurrahman_fakhrul Thanks Abdurrahman, and you&#8217;re right that most tools pick one lane. Customer identity, API auth, and agent identity share the same underlying primitives, so splitting them across three tools always felt like the wrong default to us. On the free year: after it ends, startups move to our paid plans. We kept the jump deliberate and gradual because a team that grew with us for a year churning over sticker shock would mean we failed at pricing, not them. If it ever feels steep, reach out before the year ends and we&#8217;ll figure it out.<\/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 &#8211; it&#8217;s an impressive offering!<br \/>I&#8217;m curious how MonoCloud tracks the agent acting on behalf of the user &#8211; is the agent treated as a separate identity?<br \/>And can I use Cedar to manage access to application-level entities? How does that work in practice?<\/p>\n<\/p>\n<p>I&#8217;m currently using Clerk, whose separation between development and production environments makes it easy to copy the configuration to production when launching. Do you offer a similar workflow or support migrations from other authentication providers?<\/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\/@mateuszkonik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mateuszkonik<\/a>&nbsp;Yes, the agent is treated as a separate identity. It doesn&#8217;t reuse the user&#8217;s token. The agent obtains its own token to act on behalf of the user, so agent activity is always distinguishable from the user acting directly. Cedar comes in at token issuance: each API (a resource client in MonoCloud) can have multiple Cedar policies attached, and whenever that API is requested &nbsp;via the authorization or token endpoint, all of its policies are evaluated first. A token is issued only if every policy passes, so access to an API is gated by policy right at issuance. As for migrations, you can bring users over programmatically via our Create User endpoint (<a href=\"https:\/\/www.monocloud.com\/docs\/apis\/management#tag\/users\/POST\/users)\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MonoCloud &#8211; Authentication Platform for Developers | SSO, Passkeys &amp; Next.js<\/a> &#8211; you can use user claims, private data and public data fields to capture all of the users properties from your current provider. Happy to dig into any of this further, and there&#8217;s a lot more detail in the docs (<a href=\"https:\/\/www.monocloud.com\/docs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.monocloud.com\/docs<\/a><a href=\"https:\/\/www.monocloud.com\/docs).\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">).<\/a> <br \/>I&#8217;ll be happy to walk you through the setup.<\/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\">Honestly, right now it&#8217;s the unglamorous version: a single Supabase service role key that our enrichment pipeline uses to call the Claude API and write back to the database. It works because it&#8217;s the only &#8220;agent&#8221; we run today, but it&#8217;s already the wrong shape that key can touch every table, not just the columns it needs to enrich.<\/p>\n<p>Where it&#8217;ll break first for us: the moment we add a second automated process (say, something that also handles billing or subscription logic), we&#8217;ve got two different &#8220;agents&#8221; sharing one all-or-nothing credential. There&#8217;s no scoping, no per-task revocation, no audit trail beyond generic DB logs. Right now &#8220;identity for agents&#8221; for us just means &#8220;hope the key doesn&#8217;t leak,&#8221; which isn&#8217;t a real answer, it&#8217;s a gap.<\/p><\/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\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;You are right that it is already the wrong shape. A single service role key with full reach is where almost everyone starts, so you are in good company.<br \/>The second process is where it really starts to hurt. Once a billing job and an enrichment job are sharing one credential, a leak means you cannot even tell which one did what, and you end up rotating the key on both.<\/p>\n<p>The way we think about it, each process should get its own scoped identity instead of everyone leaning on one key. You give that identity a policy for what it is allowed to do, so the enrichment worker can only enrich and the billing worker can only touch billing. If one of them is ever compromised, you revoke just that identity without taking the others down, and every action is logged against that specific agent instead of getting lost in generic DB logs.<\/p>\n<p>I am curious, are these long-running services or short-lived jobs, and where do they run, somewhere like Kubernetes, Fly, or Railway? That is what will decide whether workload identity with SPIFFE or short-lived machine-to-machine tokens is the cleaner path for you.<\/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 instant-revoke plus proof-of-what-it-did combo is the part that actually matters once agents are calling real APIs on someone&#8217;s behalf. most identity providers treat agents like just another OAuth client and call it done. does the audit trail capture the actual reasoning\/prompt context behind an action too, or just the API call itself? that distinction matters a lot when you&#8217;re trying to explain after the fact why an agent did something unexpected.<\/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;We audit the identity layer, and it&#8217;s fairly detailed, the principal that acted, the mTLS and trust store context, and the policy evaluation itself, including whether the decision was allow or deny and why, for example a revoked certificate. What it doesn&#8217;t capture is the model&#8217;s prompt or reasoning, and that belongs in your agent or observability layer. You join the two by the agent&#8217;s identity to explain why it acted.<\/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>Everything in the thread assumes a human kicked the agent off. A good chunk of what I run is on a cron, hourly, nobody logged in, so there is no session to ride along as context.user, and that is exactly where &#8220;on behalf of&#8221; gets slippery: the agent is acting for an intent someone wrote down three weeks ago, not for a person who is awake to notice. Does that shape get its own principal, or does it collapse into a machine client with a service identity and you lose the delegation trail?<\/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\/@dipankar_sarkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dipankar_sarkar<\/a>&nbsp;When there&#8217;s no human, there&#8217;s no user in the request. Machine-to-machine grants carry no user context, so the agent authenticates as its own principal, an agent client or a SPIFFE workload, not an anonymous session, and what it&#8217;s allowed to do is set by policy on that identity. The grant-type and context detail is all written up here if you want it, <a href=\"http:\/\/monocloud.com\/docs\/guides\/api-access-policy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">monocloud.com\/docs\/guides\/api-access-policy<\/a><\/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>Vishal \u2014 the step-up-before-high-risk-action line caught me. If an AI agent, not a human at a keyboard, is the one about to trigger something like a payment or a live bid submission, can step-up auth even work \u2014 or does that whole model assume there&#8217;s a human around to re-verify?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;Sharp catch. Classic step-up does assume a human is there to re-verify, so re-prompting a fully autonomous agent for a passkey doesn&#8217;t make sense. Two things cover the agent case instead. When a human should sign off, you use human-in-the-loop consent, pausing the agent before the sensitive action and requiring a fresh approval. When it&#8217;s genuinely autonomous with no human, you don&#8217;t step up at all, you gate the action with policy, a Cedar rule that decides whether that agent, with that scope, is even allowed to trigger the payment, rather than re-verifying someone who isn&#8217;t there.<\/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 the unglamorous part that makes agent work production-safe. Small teams often start with one all-powerful service key because it ships fastest, then the second or third automated process turns that shortcut into real operational risk. Per-agent identity plus fast revocation is the boring layer that lets you delegate without pretending the risk disappeared.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Exactly this. The one all-powerful key is where almost everyone starts because it ships fastest, and it stays invisible right up until the second automated process has to share it. Scoped identity per agent plus revocation you can actually trigger is what makes delegating feel safe instead of just hoping. Well put.<\/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 agent-as-a-separate-identity model is the right architecture, and Cedar for token-issuance policy is a solid choice over roles that stop scaling. the question I didn&#8217;t see answered yet is the business side of the free year: what does year two actually look like pricing-wise for a startup that&#8217;s grown into real usage by then, is it a predictable seat\/request-based scale-up or more of a cliff where the free tier suddenly becomes an enterprise sales conversation? that&#8217;s usually the thing that decides whether teams migrate off something core like identity later out of pricing fear rather than product fit.<\/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;Fair question, and the right one to ask about anything as sticky as identity. There&#8217;s no cliff. When the free year ends you move onto our standard published plans, not into an enterprise sales conversation, so it&#8217;s a predictable, self-serve scale-up rather than a renegotiation. We kept the step up gradual on purpose, because a team that grew on us for a year and then churned over sticker shock would mean we got pricing wrong. If the jump ever looks steep for where you are, reach out before the year&#8217;s up and we&#8217;ll sort it out. The whole point of the free year is to take pricing off the table as a reason to ever leave something this core.<\/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>Lessssgooooo MonoCloud<\/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\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/MXNWB2ANVQRUGF\" class=\"app-title\">Trovio For Brands<\/a><\/p>\n<div class=\"one-liner\">Communities love your brand &#8211; Our AI team finds them for you<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">170<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Trovio For Brands \u662f\u4e00\u4e2aAI\u9a71\u52a8\u7684\u793e\u533a\u53d1\u73b0\u4e0e\u521b\u4f5c\u8005\u8425\u9500\u5e73\u53f0\uff0c\u5e2e\u52a9\u54c1\u724c\u7ed5\u8fc7\u4f20\u7edf\u7684\u641c\u7d22\u5173\u952e\u8bcd\u548c\u5934\u90e8KOL\uff0c\u7cbe\u51c6\u5b9a\u4f4d\u4ea7\u54c1\u5b9e\u9645\u7528\u6237\u6240\u5728\u7684\u5c0f\u4f17\u4fe1\u4efb\u793e\u533a\uff0c\u5e76\u5339\u914d\u9ad8\u8f6c\u5316\u7387\u7684\u5c0f\u578b\u521b\u4f5c\u8005\uff0c\u5b9e\u73b0\u4ece\u89e6\u8fbe\u5230\u8f6c\u5316\u7684\u5168\u94fe\u8def\u8ffd\u8e2a\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\/6b6238f8-686b-4615-a8b1-ae46d4d162ca.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\/66e6998c-0052-4a46-a2ce-0d85c6691971.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\/dc177184-2199-4523-9440-7a03a958dc9c.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\/0c1c9fb0-8017-491d-976d-31eea7da8d77.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\/30d67b33-190f-4b40-8014-8dad379acecc.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\/16aad913-a6b9-4f57-afeb-0c902289d9d1.octet-stream?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/e620f52710ca443881d9bbc0bc31fe17\"><source src=\"https:\/\/www.loom.com\/share\/e620f52710ca443881d9bbc0bc31fe17\" 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\">Marketing<\/span><br \/>\n            <span class=\"tag\">Influencer marketing<\/span><br \/>\n            <span class=\"tag\">Social media marketing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u521b\u4f5c\u8005\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u793e\u533a\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u4f17KOL<\/span><br \/>\n            <span class=\"tag\">\u8f6c\u5316\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u5408\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u7cbe\u51c6\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5fae\u5f71\u54cd\u529b<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u4efb\u7ecf\u6d4e<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u7535\u5546<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5206\u6790<\/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\u793e\u533a\u5339\u914d\u201d\u903b\u8f91\uff0c\u63d0\u51fa\u62c5\u5fe7\uff1a\u5982\u4f55\u8bc6\u522b\u771f\u6b63\u6b22\u8fce\u54c1\u724c\u7684\u793e\u533a\u800c\u975e\u62b5\u89e6\u8005\uff1f\u5982\u4f55\u68c0\u6d4b\u865a\u5047\u7c89\u4e1d\uff1f\u80fd\u5426\u652f\u6301\u7aef\u5230\u7aef\u8f6c\u5316\u8ffd\u8e2a\uff1f\u5982\u4f55\u4fdd\u8bc1\u63a8\u8350\u8d28\u91cf\u5e76\u652f\u6301\u54c1\u724c\u624b\u52a8\u8c03\u6574\uff1f\u5bf9\u5c0f\u578b\u521b\u4f5c\u8005\u7684\u8f6c\u5316\u6548\u679c\u8868\u793a\u597d\u5947\uff0c\u5e76\u8be2\u95ee\u6536\u8d39\u6a21\u5f0f\uff08\u975e\u62bd\u6210\uff0c\u8ba2\u9605\u5236\uff09\u53ca\u5e73\u53f0\u65b9\u5982\u4f55\u52a8\u6001\u66f4\u65b0\u793e\u533a\u56fe\u8c31\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                Trovio\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u53c8\u4e00\u4e2a\u201cAI\u5339\u914d\u5de5\u5177\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u6233\u7834\u4e86\u8425\u9500\u884c\u4e1a\u4e00\u4e2a\u6d6e\u534e\u7684\u6ce1\u6cab\uff1a\u7c89\u4e1d\u6570\u5e76\u4e0d\u7b49\u4e8e\u8d2d\u4e70\u529b\u3002\u5728\u6d41\u91cf\u7ea2\u5229\u89c1\u9876\u3001\u7528\u6237\u5bf9\u786c\u5e7f\u514d\u75ab\u7684\u5f53\u4e0b\uff0c\u5b83\u627f\u8ba4\u4e86\u4e00\u4e2a\u6734\u7d20\u7684\u5546\u4e1a\u771f\u7406\u2014\u2014\u4eba\u4eec\u53ea\u4e70\u4ed6\u4eec\u4fe1\u4efb\u7684\u4eba\u7684\u63a8\u8350\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u91cd\u6784\u4e86\u201c\u53d1\u73b0\u201d\u903b\u8f91\u3002\u4f20\u7edf\u6a21\u5f0f\u662f\u5728\u201c\u521b\u4f5c\u8005\u5206\u7c7b\u201d\u91cc\u627e\u7f51\u7ea2\uff0c\u672c\u8d28\u662f\u201c\u4eba\u627e\u4eba\u201d\uff1b\u800cTrovio\u8df3\u5230\u4e86\u201c\u5728\u793e\u533a\u91cc\u627e\u4fe1\u4efb\u6e90\u201d\uff0c\u53d8\u6210\u4e86\u201c\u4ef7\u503c\u7f51\u627e\u4eba\u201d\u3002\u8fd9\u610f\u5473\u7740\u4e00\u4e2a\u5356\u86cb\u767d\u7c89\u7684\u54c1\u724c\uff0c\u4e0d\u5fc5\u518d\u53bb\u6b7b\u78d5\u5065\u8eab\u535a\u4e3b\uff0c\u800c\u662f\u80fd\u627e\u5230\u6bcf\u5929\u7ad910\u5c0f\u65f6\u7684\u5c0f\u62a4\u58eb\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u793e\u533a\u7684\u4eba\uff08\u75b2\u60eb\u7684\u4e0a\u73ed\u65cf\uff09\u624d\u662f\u771f\u6b63\u7684\u6838\u5fc3\u7528\u6237\u3002\u8fd9\u79cd\u8de8\u8d8a\u8868\u9762\u6807\u7b7e\u7684\u201c\u8de8\u54c1\u7c7b\u5339\u914d\u201d\uff0c\u624d\u662f\u5176AI\u5728\u5546\u4e1a\u6d1e\u5bdf\u4e0a\u6700\u7280\u5229\u7684\u5730\u65b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u4ea7\u54c1\u76ee\u524d\u4ecd\u5b58\u5728\u5de8\u5927\u6311\u6218\u3002\u9996\u5148\uff0c\u793e\u533a\u751f\u6001\u7684\u52a8\u6001\u5e73\u8861\u6781\u96be\u7ef4\u6301\uff1a\u4e00\u4e2a\u793e\u533a\u6628\u5929\u6b22\u8fce\u54c1\u724c\uff0c\u4eca\u5929\u53ef\u80fd\u56e0\u4e3a\u4e00\u6761\u751f\u786c\u5e7f\u544a\u5c31\u96c6\u4f53\u53cd\u611f\uff0c\u4ec5\u9760\u201cAPI\u6570\u636e\u548c\u5185\u5bb9\u4fe1\u53f7\u201d\u6765\u5224\u65ad\u793e\u533a\u7ea2\u7ebf\u7684\u7cbe\u5ea6\u5b58\u7591\u3002\u5176\u6b21\uff0c\u5b83\u58f0\u79f0\u201c\u4e0d\u505a\u62bd\u6210\u3001\u53ea\u6536\u8ba2\u9605\u8d39\u201d\u662f\u4e00\u628a\u53cc\u5203\u5251\u2014\u2014\u8fd9\u6709\u5229\u4e8e\u5438\u5f15\u4e2d\u5c0f\u54c1\u724c\u548c\u7d20\u4eba\u521b\u4f5c\u8005\uff0c\u4f46\u4e5f\u610f\u5473\u7740\u5e73\u53f0\u7684\u589e\u957f\u5f15\u64ce\u5b8c\u5168\u4f9d\u8d56\u4e8e\u80fd\u5426\u6301\u7eed\u8bc1\u660e\u201c\u5c0f\u521b\u4f5c\u8005+\u7cbe\u51c6\u793e\u533a\u201d\u7684\u8f6c\u5316\u7387\u8fdc\u9ad8\u4e8e\u4f20\u7edf\u6a21\u5f0f\u3002\u4e00\u65e6\u67d0\u6b21\u5339\u914d\u5931\u8bef\u5bfc\u81f4\u8f6c\u5316\u5d29\u584c\uff0c\u54c1\u724c\u65b9\u7684\u4fe1\u4efb\u6210\u672c\u6781\u9ad8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Trovio\u76ee\u524d\u66f4\u50cf\u4e00\u4e2a\u201c\u9ad8\u6548\u7684\u7b5b\u9009\u6f0f\u6597\u201d\uff0c\u800c\u975e\u201c\u81ea\u52a8\u5370\u949e\u673a\u201d\u3002\u5b83\u89e3\u51b3\u4e86\u53d1\u73b0\u6548\u7387\uff0c\u4f46\u5c1a\u672a\u5b8c\u5168\u56de\u7b54\u54c1\u724c\u65b9\u6700\u6df1\u7684\u6050\u60e7\uff1a\u5982\u4f55\u786e\u4fdd\u6bcf\u4e00\u7b14\u94b1\u90fd\u82b1\u5728\u201c\u80fd\u5e26\u6765\u771f\u5b9e\u9500\u552e\u7684\u4fe1\u4efb\u201d\u4e0a\uff0c\u800c\u4e0d\u662f\u53e6\u4e00\u573a\u7cbe\u7f8e\u7684\u6570\u636e\u5305\u88c5\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\">Trovio For Brands<\/span>\n                <\/div>\n<div class=\"comment-content\">A nurse on hour ten of her shift sells your protein bar better than any athlete. Gone are the days when mega creators moved the needle on conversion. Today people buy from who they trust: small, close-knit trusted communities. Trovio finds those communities, and their influencers who actually use and need your product. &#8211; Influencers matched on community in seconds &#8211; Post a brief, set terms, and we handle the rest &#8211; Full analytics and conversion tracking Trust converts. Reach doesn&#8217;t.<\/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!<\/p>\n<\/p>\n<p>I&#8217;m Andrew, co-founder of Trovio. Last time we were here, we launched Pitch Kit to help creators land brand deals without an agent. Today we&#8217;re launching the other side of the marketplace: the Trovio Brand Dashboard.<\/p>\n<\/p>\n<p>Here&#8217;s what surprised us building the creator side. The best creator for your brand often isn&#8217;t in the category you&#8217;d expect. They match your customer. We keep seeing it: a streamer who sits eight hours a day is a genuinely strong fit for comfortable activewear. A budgeting app&#8217;s most convincing voice turns out to be a debt-payoff creator, not a finance one. Not because category creators are bad, but because the audience that buys often lives somewhere else.<\/p>\n<\/p>\n<p>Search struggles to find those people. A search bar retrieves creators by the label they filed themselves under, and your customers don&#8217;t live in one label. They live in communities: comfy-clothes people, no-time-to-eat people, always-in-transit people. One community pulls from a dozen niches, so a lot of the best matches never show up when you type a keyword.<\/p>\n<\/p>\n<p>So we built the Brand Dashboard around communities instead:<\/p>\n<ul>\n<li>\n<p>Tell us about your brand and we surface the communities your customers are already in, the influencers they trust, and the reason each one fits<\/p>\n<\/li>\n<li>\n<p>Post a brief, set terms, and manage every conversation, deliverable, and deadline in one place<\/p>\n<\/li>\n<li>\n<p>Track what actually matters: conversions, not just reach<\/p>\n<\/li>\n<\/ul>\n<p>We&#8217;d especially love your take on:<\/p>\n<ul>\n<li>\n<p>How community matches feel vs. your current discovery process<\/p>\n<\/li>\n<li>\n<p>The match that surprised you most, and whether the &#8220;why&#8221; made sense at a glance<\/p>\n<\/li>\n<li>\n<p>What metrics you&#8217;d want in the dashboard that aren&#8217;t there<\/p>\n<\/li>\n<\/ul>\n<p>Ask us anything, and thanks for checking out Trovio!<\/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><a href=\"https:\/\/www.producthunt.com\/@andrew_lukas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrew_lukas<\/a>&nbsp;We&#8217;ve paid people to do exactly this by hand, and the hard part was never finding communities, it was reading which ones would actually welcome a brand versus quietly resent it. How do you tell an engaged community from one that turns on outside brands the moment you show up?<\/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>The filename being renamed is normal on many sites. Check the Network tab in DevTools during the upload\u2014the response often includes the new file URL or ID. If it doesn&#8217;t, the files are likely stored privately and not directly accessible.<\/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\/@andrew_lukas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrew_lukas<\/a>&nbsp;big fan of yours! let&#8217;s go gener8tor companies!<\/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 do you handle end-to-end conversion tracking via custom affiliate links or promo codes? congrats <a href=\"https:\/\/www.producthunt.com\/@andrew_lukas\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"andrew_lukas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrew_lukas<\/a> on hitting product hunt today\ud83d\ude4c<\/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\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;Short links, mostly. We don&#8217;t really need promo codes to get there. The link carries the attribution, so you get click through to conversion on the brand&#8217;s side without asking a creator to remember a code or a customer to type one in.<\/p>\n<p>The other half is that our creators are actually on Trovio with their accounts connected, so we can pull the post-side numbers straight from the platform instead of relying on screenshots or self-reported stats. So you get both ends&#8230; what the post did, and what it drove.<\/p>\n<p>Thanks again 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How does a brand know a creator&#8217;s audience is even real? Fake followers and bot engagement are everywhere.<\/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\/@tyler_bush\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tyler_bush<\/a>&nbsp;Great question, and honestly it&#8217;s one of the biggest problems in the space. A few layers to how we handle it. First, creators on Trovio connect their accounts directly, so everything we work from comes straight from the platform APIs and refreshes nightly. No screenshots, no self-reported media kits. Second, our matching leans on engagement quality and consistency over time rather than follower counts. Bought followers are pretty loud in the data: big reach numbers with engagement that never follows.<\/p>\n<p>There&#8217;s also a quieter filter built into the model itself. Every creator on Trovio is a paying subscriber actually running their business here, and bot farms don&#8217;t pay a monthly subscription to manage a fake audience. And the final backstop is that the dashboard tracks conversions, not just reach. Bots don&#8217;t buy things. If an audience isn&#8217;t real, it shows up exactly where you&#8217;re looking.<\/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>Sweet! Congrats! I\u2019ve not seen someone be able to truly do attribution on creator marketing. How do you do attribution?<\/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\/@olsoj029\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@olsoj029<\/a>&nbsp;Yeah, honestly that&#8217;s the thing that bugged me most about this space. Creator attribution is usually either a vanity metric (views, engagement, &#8220;estimated reach&#8221;) or a pile of UTM params that nobody sets up consistently and that get stripped the second someone copies a link.<\/p>\n<p>We do it at the link layer instead. Every creator on a campaign gets their own short link&#8230; clean enough to say out loud or drop in a bio, with the attribution baked into the link itself rather than a query string trailing off the end.<\/p>\n<p>Once you have that, the more interesting part opens up. You can see which creators are actually driving results, not just impressions, and that becomes real feedback for the brand&#8230; who to re-sign, who to go deeper with, who&#8217;s worth building an actual relationship, etc.<\/p>\n<p>And because creators tend to cluster into communities, once we know someone&#8217;s performing in a given community we can point the brand at other creators in that same community and then measure the whole group against each other. That&#8217;s the part I&#8217;m most excited about!! <\/p>\n<\/p>\n<p>Thanks for checking us out! <\/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\">This is awesome! Do smaller creators actually convert for brands, or do you still need recognizable names? I feel like I only see big creators mostly in ads still.<\/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\/@steven_snider\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steven_snider<\/a>&nbsp;Thank you!! Totally fair question, and honestly it&#8217;s why ads still look the way they do: big names are easier to find and easier to justify internally. But the conversion math points the other way. Based on industry benchmarks (HubSpot&#8217;s Influencer Marketing Report + Influencer Marketing Hub&#8217;s 2025 benchmarks), $50K on one macro creator gets you about 2.6M views and roughly 1,150 conversions. That same $50K spread across 10 smaller creators gets fewer views (about 1.9M) but roughly 4,700 conversions. Fewer eyeballs, about 4x the buyers, because people actually act on recommendations from creators they trust.<\/p>\n<p>The reason brands haven&#8217;t done this already is logistics. Finding, vetting, and managing 10 creators used to be way more work than booking one name. That&#8217;s the part Trovio takes off your plate.<\/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>This is cool! I could see us using this. How does the money work, does Trovio take a cut of the deals?<\/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\/@sean_adams_pantano1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sean_adams_pantano1<\/a>&nbsp;Thanks Sean!! Great question. We don&#8217;t take a cut, and honestly that&#8217;s the core of the whole model. The terms you set in your brief are exactly what the creator gets, no markup on either side. This allows us to run on a subscription model vs. only chasing 6 figure deals.<\/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>Is it possible to switch the creators I see if I don&#8217;t like the initial recommendations?<\/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\/@shane_mueller\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shane_mueller<\/a>&nbsp;Absolutely &#8211; you get ultimate say on who you decide to work with and the conversations you think match best to your brand! <\/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>Hey Andrew, as we know communities are changing often how do you stay on top of the changes being made to make sure the communities people want to reach are active and accept brands to potentially collaborate with <\/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\/@niallcleaver\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@niallcleaver<\/a>&nbsp;Great question. Since we have all of our creators connected to Trovio &#8211; and not just a scraped list, we actually keep up with each and every post and their engagement so we can see over time as niches, communities, and attitudes change and then change in real time with them, so the brands are never getting stale matches. <\/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 tried posting a brief last night and was impressed how quickly it matched me with a niche fitness mom group instead of random big accounts. The analytics actually show real conversions which is rare.<\/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\/@doaniikrinu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doaniikrinu<\/a>&nbsp;Thanks for checking us 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><a href=\"https:\/\/www.producthunt.com\/@andrew_lukas\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"andrew_lukas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrew_lukas<\/a> How does Trovio learn about my brand and the communities that might fit us?<\/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\/@jake_whitman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jake_whitman<\/a>&nbsp;Good question! A bit of both. You give us the starting point, basically what you sell and who it&#8217;s for, and honestly even just your site gets us going. Then we do the research from there. The other side of Trovio is thousands of creators with their real accounts connected, so we&#8217;ve built a map of communities from their actual content and who engages with it. We place your brand into that map and surface where your customers are already hanging out, the creators those communities trust, and why each one fits.<\/p>\n<p>The fun part is the matches you wouldn&#8217;t have searched for. Your customers usually live in way more communities than your category suggests, and that&#8217;s exactly what keyword search misses. Every match comes with the why in plain language, so you can gut-check it instead of trusting a black box.<\/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 community-first matching is the sharpest part here. Most creator discovery still feels like searching categories and follower counts, when the real buying intent is probably sitting inside smaller, weirder communities.<\/p>\n<p>Curious how you explain the match quality to brands at a glance. Is the &#8220;why this creator fits&#8221; mostly based on audience\/community signals, past conversion patterns, or the creator&#8217;s own content and product usage?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;Really thoughtful question, and the honest ranked answer is: mostly community and content signals today, with conversion patterns as the layer that compounds over time.<\/p>\n<\/p>\n<p>Concretely, each &#8220;why this fits&#8221; is built from where the creator&#8217;s audience actually lives (the communities they&#8217;re part of and who actually engages with them) plus the creator&#8217;s own content: what they genuinely make and talk about, which is how we infer whether they&#8217;d actually use and need what you sell rather than whether they tagged themselves in your category. We deliberately show those signals in plain language instead of one opaque score, because a surprising match without a legible why just reads as broken matching.<\/p>\n<\/p>\n<p>On past conversion patterns: that&#8217;s the part that gets stronger as deals run through the platform, since every brief has conversion tracking attached. I&#8217;d rather be straight that we&#8217;re early there than pretend we have years of conversion history. The nice property is it compounds, every campaign that runs makes the next match rationale sharper.<\/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 does it figure out which communities a brand&#8217;s customers are in? What&#8217;s that based on?<\/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\/@betsy_seus\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@betsy_seus<\/a>&nbsp;Good question. There are two ingredients. On the creator side, thousands of creators have connected their actual accounts, so we build the community map from their real content and who engages with it, not from labels people picked in a dropdown. That&#8217;s what surfaces communities that don&#8217;t match any single niche, like comfy-clothes people pulling from gamers, nurses, and new parents all at once.<\/p>\n<p>On the brand side, you tell us about your product and who buys it, and we place your brand into that same map. So the matching happens in one shared space (communities), rather than trying to translate a keyword into a creator category. And every match shows the reasoning in plain language, so you can sanity check it rather than trusting a black box<\/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 community matching angle is the useful part here because it moves the brief away from follower counts and toward actual trust. For brands that sell across several customer segments, do you let them define different community profiles inside one campaign, or is the matching model better when each brief stays focused on one clear buyer group?<\/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\/@wesc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wesc<\/a>&nbsp;Thank you! This is an awesome question.<\/p>\n<p>The matching itself already runs at the community level, and when you tell us about your brand we usually surface several distinct communities, because almost no brand maps to just one buyer group. So multi-segment discovery is native to how it works. For briefs, my honest take today is that one clear buyer group per brief performs better. Terms, creative direction, and what a good deliverable looks like usually differ by segment anyway, so a few focused briefs beat one broad one that averages across audiences. But letting brands define named community profiles and track them side by side inside one campaign is a really good idea. Noting it for 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>Interesting! How much of this is AI deciding who represents a brand?<\/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\/@chase_mine\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chase_mine<\/a>&nbsp;Good question! The honest answer is AI does the finding, you do the deciding. Where the AI earns its keep is the discovery problem: mapping which communities your customers actually live in and which creators those communities trust. That&#8217;s a many-to-many matching problem that a search bar (or a person with a spreadsheet) genuinely can&#8217;t do at scale.<\/p>\n<\/p>\n<p>But nobody represents your brand without you choosing them. Every match comes with the reason it fits in plain language, and you review the matches, decide who to invite, set the terms in your brief, and approve the final deal. So the AI narrows the field from millions of creators to the handful worth your time, and the actual call is always yours. If a match ever feels wrong and the &#8220;why&#8221; doesn&#8217;t make sense at a glance, that&#8217;s something we&#8217;d genuinely want to hear 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does this surface opportunities with those who have never monetized their content before? Curious to learn more about how it surfaces previously unknown communities for brands.<\/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\/@ihabib\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ihabib<\/a>&nbsp;Thanks for the Question. We helped 3 creators just last week get their first ever deals. Honestly that&#8217;s kind of the heart of the whole thing. The creator side of Trovio is built for the 99% who don&#8217;t have representation, and a lot of them have never done a brand deal before. They have real audiences and real trust, they&#8217;ve just never had a way in, because the agency model only pencils out for the top 1% and everyone else gets ignored. Those are exactly the people who show up in your matches, and they&#8217;re often the highest-trust voices you can get, precisely because their audience isn&#8217;t used to seeing them do ads.<\/p>\n<p>On surfacing unknown communities: the map is built from creators&#8217; actual content and who genuinely engages with it, not from categories anyone picked. Communities are many-to-many, one community pulls from a dozen niches, so when we place your brand in that map, you see communities you&#8217;d never have thought to search for. That&#8217;s the whole point really. If you already knew to search for it, you didn&#8217;t need us. Every match comes with the why in plain language so the surprising ones make sense at a glance.<\/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;match on community, not category&#8221; thesis is the right one \u2014 for a launch the highest-converting voice is usually someone already trusted in an adjacent niche, not the on-topic mega-account. I d use this to seed a Web3 product launch where the real communities are Discord\/Telegram-native rather than IG\/TikTok. One concrete thing: does the matching reach those closed community spaces, or is it sourcing purely from public social graphs \u2014 and how do you screen out communities with inflated\/bot membership before I put a brief and budget behind them?<\/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\/@hazy0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hazy0<\/a>&nbsp;Really appreciate this one, and you clearly get the thesis. Honest answer on the platform question: today the matching is built on creators who connect their accounts directly, with Instagram and TikTok first-class and YouTube rolling out now. Discord and Telegram native communities aren&#8217;t in the graph yet, but our whole approach is meeting creators where they are, so any platform where real communities live is on our radar. Web3 is honestly a great example of trust living in closed spaces rather than public feeds.<\/p>\n<p>The connect-their-account part is also the answer to your bot question. We don&#8217;t scrape public profiles and guess. Creators link their real accounts, so we see true engagement straight from the platform, not follower counts, and accounts flooded with bots are pretty loud in that data: big reach, engagement that never follows. That verification layer is exactly what we&#8217;d bring to any new platform we add, closed communities included, because putting a brief and budget behind an unverified community is the thing we&#8217;re trying to completely eliminate.<\/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 that you matched on actual community fit rather than just follower count \u2014 feels like the most honest take on influencer marketing I&#8217;ve seen in a while.<\/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\/@cemil1216871\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cemil1216871<\/a>&nbsp;Thanks so much!! We really appreciate 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>Amazing update! Congrats! One QQ; Do you match brands with one creator at a time or can they spread their budget across multiple?<\/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\/@sarah_showers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sarah_showers<\/a>&nbsp;Thank you!! And definitely multiple. Honestly spreading the budget is kind of the whole thesis. When you post a brief we surface a set of matched creators, and you decide how many to work with, whether that&#8217;s one or ten. Terms are per creator, so you can mix bigger and smaller partnerships inside the same budget, and everything runs from one place so ten conversations doesn&#8217;t mean ten times the work.<\/p>\n<p>The reason we push this way: by industry benchmark math, the same spend spread across a group of well matched smaller creators drives about 4x the conversions of putting it all on one big name. Fewer total views, way more buyers. A portfolio also derisks things, you learn which communities convert for you and put the next dollar there instead of betting everything on one bet working 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>Finding communities that genuinely engage with your brand vs just mentioning it is hard problem to solve. Curious what data sources Trovio pulls from, is it mainly Reddit and Discord type platforms?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Not Reddit or Discord, actually. The communities we care about live around the creators themselves, so mainly TikTok, Instagram, and YouTube today, expanding to more platforms to meet our creators where they&#8217;re at.<\/p>\n<p>The bigger thing is how we match. A niche describes the creator (&#8220;fitness influencer&#8221; is a label someone filed themselves under). A community describes the audience. Those are different axes, which is why searching and filtering by creator tag feels productive but gets brands nowhere.<\/p>\n<p>So say you make a protein bar. The obvious move is to go search athlete or nutrition influencers. What we&#8217;ll surface instead is something like nurses&#8230; a nurse on hour ten of her shift sells your protein bar better than any athlete does. Same product, totally different community, and it converts because it&#8217;s her actual life and not a sponsorship.<\/p>\n<p>We can do that because of the creator side. We&#8217;re already working with creators to build these communities, or they showed up with one already built, so we&#8217;re not trying to infer a community from a pile of brand mentions. We already know what it is and who&#8217;s in it, then we match that to what a brand is looking 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Would love a way to see the actual conversation thread or content context where an influencer mentioned a brand. Right now the analytics show reach and conversions but not the organic conversation that drove it, which makes it harder to brief creators on what messaging is actually landing in those communities.<\/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\/@ceyda299740\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ceyda299740<\/a>&nbsp;Yeah great feedback! When an influencer posts we do show and track the post, and the threads that emerge to show sentiment on how the message is landing beyond just the conversion and reach numbers. We can be better about saying that upfront. <\/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 would a brand know what&#8217;s fair to offer a nano creator?<\/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\/@stefan_stumpfl1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@stefan_stumpfl1<\/a>&nbsp;Good question, and there&#8217;s honestly no universal rate card, which is part of the problem. My advice is to price the work, not the follower count. Start from what you&#8217;re actually asking for: how many deliverables, how much production effort, and especially usage rights. Rerunning a creator&#8217;s content as ads is worth real money and it&#8217;s the thing most brands underprice. For smaller creators, a fair offer is usually less about hitting a magic number and more about being clear up front: the deliverables, the terms, and the budget, instead of making them guess and negotiate blind.<\/p>\n<p>This is also something we help with directly. Trovio guides you toward a fair range for what you&#8217;re asking, and matching already takes budget alignment into account, so the creators you see are ones where your range and their expectations actually overlap. No markup either, so whatever you offer is exactly what the creator sees. From there creators can accept or counter, and honestly a clearly scoped offer to a handful of well matched creators will calibrate you faster than any benchmark article.<\/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>Do product-exchange deals still work or do creators all want cash now?<\/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\/@yasir_khan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yasir_khan<\/a>&nbsp;Honest take: gifting absolutely still works, it just works for different reasons than it used to. Cash has become the norm for bigger asks, but for a lot of creators a product they genuinely want is a totally fair trade for a low-lift post, especially early in a relationship with a brand. We see almost 50% of our first deals on a product exchange. <\/p>\n<p>The key is fit, which is really a targeting problem. A gifting offer to a random creator in your category reads as &#8220;work for free.&#8221; The same offer to someone who actually lives in the community your product serves reads as a perk, because it&#8217;s something they&#8217;d probably buy anyway. That&#8217;s honestly one of my favorite side effects of matching on communities: when the fit is real, gifting and hybrid deals (product plus a smaller cash component) land really well, and some of the most authentic content comes from exactly those deals. On Trovio you set the terms in your brief, so product-exchange, hybrid, and cash briefs are all totally doable. My advice: product-exchange is a great way to start relationships and test fit, then put cash behind the creators and deliverables that prove out.<\/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 really like this! But, there are a hundred influencer tools out there, what&#8217;s actually different about this one?<\/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,<a href=\"https:\/\/www.producthunt.com\/@laura_butler\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laura_butler<\/a>!&nbsp;Fair challenge, and honestly it&#8217;s the right question to ask. Most influencer tools are some version of the same thing: a searchable database of creator profiles. You type keywords, filter by follower count, and get back creators sorted by the label they filed themselves under. The tools differ in polish, but the underlying model is retrieval by category.<\/p>\n<p>Three things we do differently. First, we match on communities instead of categories. A niche describes the creator, but a community describes the audience, and one community pulls from a dozen niches. That&#8217;s a many-to-many problem a search bar structurally can&#8217;t solve, and it&#8217;s why the best match for your brand often isn&#8217;t in the category you&#8217;d search. Second, the creators on Trovio aren&#8217;t scraped profiles. They&#8217;re actually here, running their business on our creator side with their real accounts connected, so the data is first-party and the conversations happen in one place. Third, the incentives: we take no cut and add no markup, so a $500 brief is worth doing right, not just a six figure one. My honest take is that the difference isn&#8217;t a feature, it&#8217;s that the whole thing is built around who your customer trusts instead of who has the most followers.<\/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>Really like the insight behind this. The best creator for a brand usually isn&#8217;t the biggest creator. Finding trusted niche communities instead of chasing vanity metrics is where the real ROI comes from. Excited to see where this goes<\/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\/@suryansh_tiwari2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suryansh_tiwari2<\/a>&nbsp;thanks! Appreciate the support.  We think this direction unlocks a ton for creator and brand relationships. <\/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 really interesting! So I understand you match brands with creators but who handles the exchanging of money and signing on the dotted line to get the work done? Excited to learn more. <\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vanessa_brost\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vanessa_brost<\/a>&nbsp;Thank you!! Great question. Both happen inside Trovio. When you post a brief you set the terms, and a creator accepting is the agreement, so the scope, deliverables, and price everyone signed up for are documented in the platform rather than living in some email thread. Payment runs through Trovio too. You&#8217;re not chasing invoices or wiring money to someone you met last week, and the creator isn&#8217;t chasing you to get paid, which honestly is half the reason smaller deals never used to happen.<\/p>\n<p>And since we take no cut and add no markup, the number in the brief is exactly what the creator receives. We make money on the subscription, not the transaction. Would love to show you more, and happy to answer anything else!<\/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 community-not-category angle is genuinely different from the usual influencer platform pitch. one thing I didn&#8217;t see covered: these community voices (a nurse, a debt-payoff creator) are often not professional influencers with a media kit and an agent who already know the FTC disclosure rules cold. does Trovio handle the #ad\/#sponsored disclosure piece for them, or is that left to the creator to get right on their own? that feels like the kind of compliance gap that only shows up after a campaign, not during matching.<\/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!<\/p>\n<\/p>\n<p>Are there any industries where this community-based approach works especially well?<\/p>\n<\/p>\n<p>I\u2019d also be curious whether the strongest matches tend to come from TikTok, YouTube, Instagram, or Twitch.<\/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 impressed by how you are leveraging agents to solve a real gap. This was relatable to me: <\/p>\n<\/p>\n<p>\u201cbeginner-friendly strength training. In Maya&#8217;s comments, women share things like <em>\u201cI finally walked into the free-weight section without wanting to turn around.\u201d<\/em> That&#8217;s the specific conversation a women&#8217;s apparel brand wants to be part of \u2014 the kind they&#8217;d never find by searching for \u201cfitness creators.\u201d Her agent reads those signals, matches her with the brand, and drafts the pitch in her voice. Sent the same afternoon.\u201d<\/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\/5AWKZPAEQSZ2TZ\" class=\"app-title\">Light Flip <\/a><\/p>\n<div class=\"one-liner\">Nostalgia for a time before smartphones<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">147<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Light Flip \u662f\u4e00\u6b3e\u6781\u7b80\u4e3b\u4e49\u7684\u7ffb\u76d6\u529f\u80fd\u624b\u673a\uff0c\u65e8\u5728\u5e2e\u52a9\u7528\u6237\u6446\u8131\u667a\u80fd\u624b\u673a\u7684\u8fc7\u5ea6\u4f9d\u8d56\uff0c\u56de\u5f52\u6709\u610f\u8bc6\u7684\u6570\u5b57\u751f\u6d3b\uff0c\u5728\u4fdd\u6301\u901a\u8bdd\u3001\u77ed\u4fe1\u7b49\u6838\u5fc3\u901a\u4fe1\u529f\u80fd\u7684\u540c\u65f6\uff0c\u901a\u8fc7\u523b\u610f\u9650\u5236\u5e94\u7528\u548c\u529f\u80fd\u6765\u9632\u6b62\u65e0\u610f\u8bc6\u5237\u5c4f\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\/b7d7c949-c461-4dc2-8b95-457d4875c4f9.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\/6fa80d14-5cda-4a10-8042-6217b78141fa.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\/4a058f30-477a-4dce-9336-cc16011e6d79.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\">Hardware<\/span><br \/>\n            <span class=\"tag\">Cell Phone<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6781\u7b80\u624b\u673a<\/span><br \/>\n            <span class=\"tag\">\u7ffb\u76d6\u624b\u673a<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u6392\u6bd2<\/span><br \/>\n            <span class=\"tag\">\u529f\u80fd\u624b\u673a<\/span><br \/>\n            <span class=\"tag\">\u53cd\u667a\u80fd\u624b\u673a<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u9632\u6c89\u8ff7<\/span><br \/>\n            <span class=\"tag\">\u53bb\u7f51\u7edc\u5316<\/span><br \/>\n            <span class=\"tag\">\u7535\u5b50\u58a8\u6c34\u5c4f<\/span><br \/>\n            <span class=\"tag\">\u6000\u65e7\u79d1\u6280<\/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\u540c\u201c\u6570\u5b57\u6392\u6bd2\u201d\u4ef7\u503c\uff0c\u4f46\u6838\u5fc3\u7591\u8651\u96c6\u4e2d\u5728\u65b0\u54c1\u4e0e\u539f\u6709Light Phone\u7684\u5b9a\u4f4d\u5dee\u5f02\uff1a\u662f\u5426\u589e\u6dfb\u4e86\u66f4\u591a\u529f\u80fd\uff08\u5982\u5bfc\u822a\u3001\u76f8\u673a\u5bfc\u51fa\u3001\u8054\u7cfb\u4eba\u8fc1\u79fb\uff09\uff1f\u7528\u6237\u62c5\u5fc3\u6000\u65e7\u5916\u5f62\u4f1a\u5bfc\u81f4\u201c\u6084\u65e0\u58f0\u606f\u5730\u589e\u52a0\u529f\u80fd\u201d\uff0c\u7834\u574f\u4e86\u539f\u6709\u7684\u6781\u7b80\u54f2\u5b66\uff0c\u5e76\u5173\u5fc3\u975e\u667a\u80fd\u624b\u673a\u5728\u8fc7\u6e21\u671f\u7684\u5b9e\u7528\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                Light Flip \u6253\u51fa\u7684\u662f\u4e00\u5f20\u9ad8\u7ea7\u7684\u201c\u5fc3\u7406\u724c\u201d\u2014\u2014\u4e0d\u662f\u8d29\u5356\u786c\u4ef6\uff0c\u800c\u662f\u8d29\u5356\u4e00\u79cd\u6446\u8131\u6570\u5b57\u7126\u8651\u7684\u5e7b\u89c9\u3002\u4ece\u8bc4\u8bba\u770b\uff0c\u8fd9\u6279\u6838\u5fc3\u7528\u6237\u5e76\u975e\u62b5\u5236\u79d1\u6280\uff0c\u800c\u662f\u538c\u6076\u201c\u5931\u63a7\u7684\u4fbf\u5229\u201d\u3002\u4ed6\u4eec\u771f\u6b63\u9700\u8981\u7684\u662f\u4e00\u4e2a\u201c\u6709\u5c0a\u4e25\u7684\u7262\u7b3c\u201d\uff1a\u529f\u80fd\u8db3\u591f\u6ee1\u8db3\u751f\u5b58\u5e95\u7ebf\uff08\u5bfc\u822a\u3001\u8054\u7cfb\u4eba\u3001\u64ad\u5ba2\uff09\uff0c\u540c\u65f6\u53c8\u5f3a\u5236\u9694\u79bb\u6296\u97f3\u548c\u63a8\u7279\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Light \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u50cf\u8bfa\u57fa\u4e9a\u90a3\u6837\u505a\u4e00\u6b3e\u201c\u66f4\u5dee\u7684\u65e7\u624b\u673a\u201d\uff0c\u800c\u662f\u5c06\u53cd\u667a\u80fd\u672c\u8eab\u54c1\u724c\u5316\u3001\u793e\u7fa4\u5316\u3002\u9760147\u7968\u7684\u793e\u533a\u70ed\u5ea6\uff0c\u5370\u8bc1\u4e86\u8fd9\u4e00\u7ec6\u5206\u9700\u6c42\u786e\u5b9e\u5b58\u5728\u3002\u4f46\u9690\u5fe7\u4e5f\u5341\u5206\u660e\u663e\uff1a\u5b83\u672c\u8d28\u4e0a\u5728\u8d4c\u201c\u591a\u5c11\u7528\u6237\u613f\u610f\u4e3a\u53cd\u4e3b\u6d41\u800c\u4ed8\u8d39\u201d\u3002\u4e00\u65e6Flip\u4e3a\u4e86\u6269\u5927\u5e02\u573a\u5f00\u59cb\u5077\u5077\u52a0\u56de\u6d4f\u89c8\u5668\u3001\u5fae\u4fe1\u7b49\u529f\u80fd\uff0c\u5b83\u5c06\u7acb\u523b\u4ece\u4e00\u4e2a\u610f\u8bc6\u5f62\u6001\u4ea7\u54c1\u9000\u5316\u4e3a\u4e00\u4e2a\u4e11\u964b\u7684\u3001\u529f\u80fd\u6b8b\u7f3a\u7684\u5b89\u5353\u5957\u58f3\uff0c\u4e22\u5931\u6240\u6709\u7a00\u7f3a\u6027\u3002\u76ee\u524d\u6700\u5c16\u9510\u7684\u8d28\u95ee\u6b63\u662f\u6765\u81ea\u65e9\u671f\u4fe1\u5f92\uff1a\u4f60\u4eec\u4f1a\u4e0d\u4f1a\u4e3a\u4e86\u51fa\u8d27\u91cf\u800c\u201c\u6f02\u767d\u201d\u6781\u7b80\u4e3b\u4e49\uff1f\u7b54\u6848\u51b3\u5b9a\u4e86\u8fd9\u6b3e\u4ea7\u54c1\u662f\u7cbe\u795e\u56fe\u817e\uff0c\u8fd8\u662f\u5931\u8d25\u7684\u60c5\u6000\u751f\u610f\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\">Light Flip <\/span>\n                <\/div>\n<div class=\"comment-content\">Light is a radically different technology company. We design beautiful tools that respect and empower our users and our first product is The Light Phone.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Time and time again, we\u2018ve heard from people \u2013 especially the younger generations &#8211; who love flip phones, but the current options are poorly made, slow, unsupported, and often pre-installed with the same addictive apps built in. Light is taking everything that already works for tens of thousands of Light Phone users and is bringing that into a heavily desired yet timeless tactile form factor of a flip phone.<\/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>As someone who has eyed a Light Phone but always worried about the day-one gap \u2014 what actually makes the cut on the Flip beyond calls and texts? Is there turn-by-turn navigation, and can I move my contacts and podcasts over without keeping a smartphone in the loop? The flip form factor is the part that would actually get me to leave the smartphone at home.<\/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 do you get the photos from the camera to your computer?<\/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>Been using one as a weekend detox and honestly the e-ink display is way easier on my eyes than I expected. Love that I can leave the smartphone at home and still get calls and directions without doomscrolling.<\/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 dumbphone market is growing for good reason. Constant connectivity is draining for a lot of people. Is this a full hardware product or more of a software layer on existing devices?<\/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 this concept \u2014 there&#8217;s a growing appetite for intentionally &#8220;dumb&#8221; tech that still respects modern needs. What&#8217;s the biggest tradeoff you had to make to keep it simple without making it frustrating to actually use day-to-day?<\/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 flip form factor is genuinely interesting because it changes the default behavior before software even gets involved. Opening a phone to do something feels more intentional than endlessly waking a slab.<\/p>\n<p>Curious how much of the original Light Phone constraint system carries over here. Is Light Flip still deliberately limited to essentials, or does the tactile nostalgia come with a slightly broader app\/tool set than the earlier Light Phones?<\/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 whole reason people trust Light Phone is that it&#8217;s deliberately incapable of most things, not just shaped like an old phone. curious where Flip lands on that spectrum &#8211; is this the same &#8220;as little as possible&#8221; philosophy in a flip shell, or does the nostalgia angle mean you&#8217;ve quietly added back more apps\/features than the original Light Phone had, since that&#8217;s usually how &#8220;fun retro form factor&#8221; products drift over a few versions.<\/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\/RMKP4FBHZFOASU\" class=\"app-title\">Arkor<\/a><\/p>\n<div class=\"one-liner\">Fine-tune and Deploy Open-weight Models in TypeScript<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">140<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Arkor \u8ba9\u5f00\u53d1\u8005\u65e0\u9700\u7ba1\u7406GPU\u57fa\u7840\u8bbe\u65bd\u6216\u7f16\u5199Python\u4ee3\u7801\uff0c\u5373\u53ef\u5728TypeScript\u9879\u76ee\u4e2d\u901a\u8fc7\u4ee3\u7801\u52a9\u624b\u5feb\u901f\u5fae\u8c03\u5f00\u6e90\u6a21\u578b\uff0c\u5e76\u5c06\u5176\u90e8\u7f72\u4e3aAPI\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\/59174039-44f9-45b4-9713-ff09b1c9ca69.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\/1eaf1b3d-ad76-4c89-b5e1-d063fce6d785.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\/3320c4da-3290-470f-9f98-946c9bf33abb.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\/f1a08b46-8830-4746-9084-4ed428cb0bee.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\/a9f8db0c-3f83-4e19-8316-f9f496a0d17c.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\/5a1f7621-d1a9-4fc0-828d-b57894caedf0.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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6a21\u578b\u5fae\u8c03<\/span><br \/>\n            <span class=\"tag\">TypeScript<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801\/\u65e0\u4ee3\u7801ML<\/span><br \/>\n            <span class=\"tag\">AI\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">GPU\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u52a9\u624b\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5b89\u5168<\/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\u8bad\u7ec3\u6570\u636e\u6cc4\u6f0f\u4e0e\u8bc4\u4f30\u9a8c\u8bc1\u95ee\u9898\uff08\u5982\u8bad\u7ec3\/\u9a8c\u8bc1\u96c6\u91cd\u590d\u3001\u6570\u636e\u6cc4\u9732\uff09\uff1b\u62c5\u5fe7\u672c\u5730\u6570\u636e\u96c6\u610f\u5916\u63d0\u4ea4\u81f3Git\u4ed3\u5e93\u9020\u6210\u5b89\u5168\u98ce\u9669\uff1b\u8be2\u95ee\u662f\u5426\u652f\u6301\u4e0b\u8f7d\u6a21\u578b\u6743\u91cd\u3001\u81ea\u6258\u7ba1\u8bad\u7ec3\u4e0e\u63a8\u7406\uff1b\u80af\u5b9a\u514dPython\u3001\u4f4e\u6469\u64e6\u7684\u5f00\u53d1\u8005\u4f53\u9a8c\u53ca\u4ee3\u7801\u53ef\u89c1\u6027\u4f18\u52bf\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                Arkor\u8bd5\u56fe\u89e3\u51b3\u7684\u662f\u4e00\u4e2a\u7ecf\u5178\u4e14\u6602\u8d35\u7684\u75db\u70b9\uff1a\u5c06AI\u529f\u80fd\u4ece\u201c\u8c03API\u201d\u5347\u7ea7\u5230\u201c\u6a21\u578b\u5fae\u8c03\u201d\uff0c\u5176\u8de8\u5ea6\u5f80\u5f80\u6a2a\u8de8\u4e00\u4e2a\u5b8c\u6574\u7684ML\u57fa\u7840\u8bbe\u65bd\u56e2\u961f\u3002\u5b83\u5de7\u5999\u5730\u901a\u8fc7\u201cTypeScript\u539f\u751f\u4f53\u9a8c + \u4ee3\u7801\u52a9\u624b\u9a71\u52a8\u201d\u964d\u4f4e\u4e86Web\u5f00\u53d1\u8005\u8fdb\u5165\u7684\u95e8\u69db\uff0c\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u5728\u4e8e\u8bad\u7ec3\u901f\u5ea6\u6216\u6a21\u578b\u6548\u679c\uff0c\u800c\u5728\u4e8e\u5c06\u590d\u6742\u3001\u975e\u900f\u660e\u7684ML\u8fc7\u7a0b\u201c\u8f6f\u4ef6\u5de5\u7a0b\u5316\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u76ee\u524d\u66b4\u9732\u7684\u77ed\u677f\u975e\u5e38\u81f4\u547d\u3002\u591a\u6570\u8bc4\u8bba\u6307\u5411\u4e00\u4e2a\u6838\u5fc3\u77db\u76fe\uff1aArkor\u7684\u5356\u70b9\u662f\u201c\u65e0\u9700ML\u4e13\u4e1a\u77e5\u8bc6\u201d\uff0c\u4f46\u7528\u6237\u63d0\u51fa\u7684\u8bad\u7ec3\u6570\u636e\u6cc4\u9732\u3001\u8fc7\u62df\u5408\u3001\u8bc4\u4f30\u6307\u6807\u7b49\u6070\u6070\u662fML\u9886\u57df\u7684\u6838\u5fc3\u5751\u3002\u5c06\u201c\u68c0\u67e5\u6570\u636e\u8d28\u91cf\u201d\u548c\u201c\u5224\u65ad\u6a21\u578b\u597d\u574f\u201d\u7684\u8d23\u4efb\u5b8c\u5168\u4ea4\u7ed9\u4e00\u4e2a\u4e0d\u4e86\u89e3\u6570\u636e\u7684\u4ee3\u7801\u52a9\u624b\uff0c\u65e0\u5f02\u4e8e\u8ba9\u65b0\u624b\u9a7e\u9a76\u5458\u5728\u4e0d\u77e5\u8def\u51b5\u7684\u60c5\u51b5\u4e0b\u76f2\u5f00\u3002Maker\u5728\u56de\u590d\u4e2d\u627f\u8ba4\u5c1a\u672a\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\uff0c\u8fd9\u6697\u793a\u4ea7\u54c1\u76ee\u524d\u66f4\u63a5\u8fd1\u4e00\u4e2a\u201c\u9ad8\u6548\u7684\u6a21\u578b\u8bad\u7ec3\u542f\u52a8\u5668\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u201c\u53ef\u9760\u7684\u6a21\u578b\u751f\u4ea7\u5e73\u53f0\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u201cManaged-first\u201d\u7684\u7b56\u7565\u867d\u7136\u5728\u521d\u671f\u964d\u4f4e\u4e86\u4f7f\u7528\u963b\u529b\uff0c\u4f46\u4e5f\u5e26\u6765\u4e86\u4f9b\u5e94\u5546\u9501\u5b9a\uff08\u4e0d\u80fd\u81ea\u6258\u7ba1\u3001\u4e0d\u80fd\u4e0b\u8f7d\u6743\u91cd\uff09\u7684\u9690\u5fe7\uff0c\u8fd9\u4e0e\u5f00\u6e90\u793e\u533a\u201c\u638c\u63a7\u81ea\u5df1\u6a21\u578b\u201d\u7684\u4ef7\u503c\u89c2\u5b58\u5728\u51b2\u7a81\u3002Arkor\u771f\u6b63\u7684\u6311\u6218\u5728\u4e8e\uff0c\u5b83\u9700\u8981\u4ece\u201c\u8ba9\u8bad\u7ec3\u8dd1\u8d77\u6765\u201d\u5feb\u901f\u8fdb\u5316\u5230\u201c\u8ba9\u8bad\u7ec3\u8dd1\u5bf9\u4e14\u53ef\u63a7\u201d\uff0c\u5e76\u59a5\u5584\u5904\u7406\u6570\u636e\u4e3b\u6743\u95ee\u9898\u3002\u5982\u679c\u53ea\u662f\u5c06ML\u7684\u590d\u6742\u6027\u4ece\u201cPython\u811a\u672c\u201d\u8f6c\u79fb\u5230\u201c\u795e\u79d8\u7684\u9ed1\u76d2\u64cd\u4f5c\u201d\uff0c\u90a3\u5b83\u5e76\u672a\u89e3\u51b3\u6839\u672c\u95ee\u9898\u3002\u76ee\u524d\u6765\u770b\uff0c\u5b83\u66f4\u9002\u5408\u6781\u901f\u539f\u578b\u9a8c\u8bc1\uff0c\u8ddd\u79bb\u771f\u6b63\u7684\u751f\u4ea7\u7ea7\u5de5\u4f5c\u6d41\u5c1a\u6709\u4e00\u6bb5\u8ddd\u79bb\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\">Arkor<\/span>\n                <\/div>\n<div class=\"comment-content\">Start a real LLM training in 10 minutes. Tell Claude Code or Codex what the model is for; they prepare the datasets and create the training project. Click &#8220;Run Training&#8221; in the local studio. Arkor runs the training, and deploys the trained model as an OpenAI-compatible API. Think Next.js and Vercel for fine-tuning: code you can review, infrastructure you do not have to manage, and a model your app can call. No GPU setup. No ML expertise required. No Python training code to write.<\/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! \ud83d\udc4b<\/p>\n<p>I\u2019m Hina, one of the makers of Arkor.<\/p>\n<p>We built Arkor because we kept running into the same gap: adding an AI feature to an application is easy, but adapting a model to a specific task still feels like joining an ML infrastructure team.<\/p>\n<p>The moment you want to fine-tune, you often end up maintaining a separate Python project, converting datasets into unfamiliar formats, provisioning GPUs, and moving between scripts, notebooks, and dashboards.<\/p>\n<p>We wanted model development to feel more like ordinary software development.<\/p>\n<p>With Arkor, the workflow starts inside your existing repository:<\/p>\n<ol>\n<li>\n<p>Tell Claude Code or Codex what behavior you want from the model.<\/p>\n<\/li>\n<li>\n<p>Your coding agent can find or prepare a dataset, write conversion scripts, create the TypeScript trainer, and add evaluation.<\/p>\n<\/li>\n<li>\n<p>Review the generated code and changes.<\/p>\n<\/li>\n<li>\n<p>The agent runs pnpm dev, and Arkor Studio opens locally at localhost:4000.<\/p>\n<\/li>\n<li>\n<p>Click <strong>Run Training<\/strong>, monitor the loss and checkpoints, test the trained adapter, and deploy the result.<\/p>\n<\/li>\n<\/ol>\n<p>For example, you can give your coding agent a prompt like:<\/p>\n<blockquote>\n<p>Use Arkor to fine-tune a model that rewrites rough drafts as tweets in my style: <a href=\"https:\/\/github.com\/arkorlab\/arkor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/arkorlab\/arkor<\/a><br \/>Find or prepare a suitable dataset, create the TypeScript training workflow, and tell me when it is ready to review in Arkor Studio.<\/p>\n<\/blockquote>\n<p>Arkor is not intended to be a magical prompt-to-model black box. It is a developer-controlled workflow where coding agents can handle much of the setup, while the training code, data transformations, evaluation, and final decisions remain visible and reviewable.<\/p>\n<p>We\u2019re especially interested in feedback on:<\/p>\n<ul>\n<li>\n<p>Whether the coding-agent workflow feels intuitive<\/p>\n<\/li>\n<li>\n<p>Which parts of fine-tuning still feel unclear or intimidating<\/p>\n<\/li>\n<li>\n<p>What you would need before using Arkor for a production model<\/p>\n<\/li>\n<li>\n<p>Which models, datasets, and deployment workflows we should support next<\/p>\n<\/li>\n<\/ul>\n<p>Thanks for checking out Arkor. We\u2019ll be here throughout the launch and would love to hear what you try building. \ud83d\ude4f<\/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=\"comment-item\">\n<div class=\"comment-content\">The dataset-prep step is where I&#8217;d be nervous, since that&#8217;s exactly the kind of thing a coding agent will happily do and happily get subtly wrong a bad train\/val split, near duplicate examples leaking across the two, or silently deduping less than it should. None of that shows up as an error, it just shows up later as a model that looks great in Arkor Studio&#8217;s loss curve and then underperforms in the real world.<\/p>\n<p>Does Arkor Studio do anything to catch that automatically flag overlap between train\/val sets, or run a sanity check before burning GPU time on the actual training run? That&#8217;s the piece I&#8217;d want visible before trusting the agent-driven prep step for something going to production.<\/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\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;Hey Brandon, I really appreciate your comments!<\/p>\n<p>You\u2019re right, and this is exactly the kind of failure a healthy-looking loss curve will not reveal.<\/p>\n<p>Arkor Studio does not currently detect train\/validation leakage, near-duplicate overlap, or insufficient deduplication automatically. Today, those checks have to be defined in the project\u2019s dataset preparation and evaluation code.<\/p>\n<p>For a framework intended to make fine-tuning accessible to developers who may not already know these failure modes, we do not think that is sufficient. Studio and the framework should provide a preflight layer before GPU time is spent, including split-overlap checks, exact and near-duplicate detection, malformed-example checks, and visibility into eval coverage.<\/p>\n<p>We\u2019re on it. <br \/>This is one of the clearest pieces of feedback we\u2019ve received today, and it is helping us prioritize the right responsibility for Studio.<\/p>\n<p>Would you expect these checks to block the run by default, or surface warnings and let the developer decide?<\/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 eval\/leakage question below is the big one, but there&#8217;s a second thing nagging me: this workflow lives inside your existing repo, with the coding agent preparing the dataset alongside the code. does that mean the actual training examples end up committed to git history by default? if someone points this at a real support-ticket or user-message dataset to fine-tune on, that&#8217;s real customer data now living in version control unless you go out of your way to gitignore it &#8211; feels like an easy footgun for anyone who isn&#8217;t already thinking about data handling.<\/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;Hey Gal, thank you for commenting!<\/p>\n<p>Great point. The intended default is not to store raw training data in the repo. Arkor is designed to reference datasets hosted on Hugging Face, but we also support local JSONL files.<\/p>\n<p>You\u2019re right that local files create an easy footgun. Without the right safeguards, real support tickets or user messages could accidentally end up in Git history.<\/p>\n<p>For a framework aimed at developers who may be new to fine-tuning, we should not leave that entirely to the user. <br \/>Adding dataset paths to .gitignore by default, warning when local training files are tracked, and surfacing data-handling checks before training are guardrails we should provide.<\/p>\n<p>This is a genuinely helpful point. <\/p>\n<p>Would a default ignore plus a warning for tracked dataset files address the main risk you\u2019re thinking of, or would you expect stricter handling of local datasets?<\/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>Pushing a fine-tune through without touching a single Python script felt weirdly good. The handoff between Claude Code preparing the data and Arkor just clicking &#8220;Run Training&#8221; was exactly the kind of low-friction flow I keep wishing existed.<\/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\/@beyzawzzc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@beyzawzzc<\/a>&nbsp;Hi Beyza! <br \/>Thanks so much, that\u2019s exactly the kind of experience we were hoping to create.<\/p>\n<p>I\u2019m curious what you\u2019re building. Are you already using an LLM API inside your product? <br \/>If so, what task are you asking the model to handle today, and where does the current model fall short?<\/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>Looks super cool guys! Curious to know though, how much control do users have when choosing which llm they can fine tune? <\/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\/@lucapiekarski\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucapiekarski<\/a>&nbsp;Thanks, Luca! <\/p>\n<p>We\u2019re starting with Gemma 4 for the first release, mainly so we can make the full workflow reliable before expanding the model catalog.<\/p>\n<p>We\u2019re already hearing requests for smaller models for low-latency or local use, plus voice and vision models, so those are definitely areas we\u2019re exploring.<\/p>\n<p>What are you hoping to build, and which model would you want to fine-tune?<\/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>can you download the resulting weights?<\/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\/@school_4_ants\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@school_4_ants<\/a>&nbsp;Thanks for asking, Hunter! <\/p>\n<\/p>\n<p>Not yet in the current release. <\/p>\n<p>We launched managed-first so people could go from training to inference without setting up GPUs or deployment infrastructure.<\/p>\n<\/p>\n<p>That said, avoiding vendor lock-in is important to us, and downloadable training artifacts are on our roadmap.<\/p>\n<\/p>\n<p>For your use case, would downloading the LoRA adapter be enough, or would you also need the merged model weights? <\/p>\n<p>And would Hugging Face \/ safetensors be your preferred format?<\/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 &#8216;tell Claude Code what the model is for and it preps the dataset&#8217; handoff is the part people usually stall on, so nailing that is smart. When I hit Run Training in the local studio, is the GPU compute actually local to my machine, or does it provision remote GPUs behind that UI \u2014 and does the deployed OpenAI-compatible endpoint live self-hosted or on Arkor&#8217;s side? Also curious how Claude Code\/Codex actually drives the dataset prep: an MCP server, a CLI it shells out to, or just file conventions in 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\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;Great questions. <\/p>\n<p>Today, Arkor Studio is a local control surface, but the actual training runs on Arkor-managed remote GPUs. The deployed OpenAI-compatible endpoint is also hosted by Arkor.<\/p>\n<p>We started fully managed so people could try the entire workflow without provisioning GPUs or setting up serving infrastructure. <\/p>\n<p>That said, we do not want Arkor to become a vendor lock-in. Self-hosting and more portable deployment options are on the roadmap.<\/p>\n<p>Claude Code or Codex works the same way it normally does: you ask it to use Arkor to build a model for a specific task, and it edits the files in your local project, prepares the dataset workflow, writes the training script, and runs the project commands. There is no special MCP-only workflow required.<\/p>\n<p>For your use case, would you prefer bringing your own GPU for training, self-hosting inference, or both?<\/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>Fine-tuning open-weight models in TypeScript is kind of unusual approach, most tooling for this is Python heavy. Makes it much more accesible for JS devs though. What models are supported so far?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Hi Abdurrahman, thanks for commenting! <\/p>\n<p>You\u2019re right that the underlying training stack still relies heavily on the Python ecosystem. <\/p>\n<p>Arkor wraps that into a TypeScript framework and managed runtime, so JS and TypeScript developers can build the workflow in their own project and go from training to serving without maintaining a separate Python stack or managing GPUs themselves.<\/p>\n<p>For the initial release, we\u2019re intentionally starting with Gemma 4 so we can make the full experience reliable end-to-end. <\/p>\n<p>We\u2019re already hearing requests for smaller models for lower latency and local inference, and expanding model support is on the roadmap.<\/p>\n<p>What would you want to fine-tune, and for what kind of use case? A specific model family or size would be especially helpful as we decide what to support next.<\/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 about the &#8220;no ML expertise required&#8221; claim specifically &#8211; when Claude Code or Codex picks the hyperparameters and dataset splits, how do you know the fine-tune actually improved anything vs just memorized the training set? that eval step usually needs someone who knows what they&#8217;re looking at, not just infra automation.<\/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;Hi Omri! That\u2019s a fair challenge. <\/p>\n<p>Studio lets you inspect training and validation loss, but loss alone cannot tell you whether the model generalized or simply memorized the training set.<\/p>\n<p>You\u2019re also right that \u201cno ML expertise required\u201d is too broad. <\/p>\n<p>What Arkor removes today is the need to maintain a Python training stack, provision GPUs, and build the training and serving infrastructure yourself. A meaningful held-out eval set and task-specific success criteria still matter.<\/p>\n<p>One reason we started with the Gemma 4 was to keep the initial use case focused. <br \/>A common workflow is to use a larger model to generate or label examples for a clearly defined task, then fine-tune a smaller model to reproduce that behavior. We think that can work well for application-level semantic tasks such as classification, extraction, routing, and rewriting.<\/p>\n<p>We also think evaluation needs to become a first-class part of the Arkor framework. Projects should be able to define task-specific evals in code, while Studio surfaces base-vs-adapter comparisons, data leakage and duplicate checks, and signs of overfitting before deployment. We are not fully there yet, but this is an important direction for us.<\/p>\n<p>Thanks for pushing on the claim. We&#8217;re going to position this more clearly.<\/p>\n<p>What would be the most useful first step for you: automated dataset checks, base-vs-adapter evaluation on a held-out set, or support for custom task-specific metrics?<\/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>Arkor makes the fine-tuning workflow feel much closer to normal app development, which is exactly where this has been too painful for most dev teams.<\/p>\n<p>The part I\u2019d want most visibility into is the dataset and eval step. If the coding agent prepares the data and trainer, does Arkor Studio surface checks for train\/val leakage, near-duplicate examples, or weak eval coverage before the GPU time gets spent?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;Hey Adithya! I really appreciate your comment.<\/p>\n<p>This is a very fair point. <br \/>Studio shows training progress and loss today, but it does not yet take responsibility for detecting train\/validation leakage, near-duplicates, or weak eval coverage before a run.<\/p>\n<p>Right now, those checks need to be implemented in the project\u2019s data preparation and evaluation code. <br \/>But for a framework designed for developers who may be new to fine-tuning, leaving all of that to the user is not good enough.<\/p>\n<p>We believe dataset validation and evaluation should become first-class parts of both the Arkor framework and Studio. <br \/>Preflight checks for split overlap, duplicates, malformed examples, label and scenario coverage, plus held-out base-vs-adapter evaluation, are exactly the direction we\u2019re working toward.<\/p>\n<p>We\u2019re on it, and this feedback helps us prioritize it. Thank you. <\/p>\n<p>What would be the minimum preflight report you\u2019d need before trusting an agent-prepared dataset?<\/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\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/Y2DPUGKOC2RG5O\" class=\"app-title\">AgentManager<\/a><\/p>\n<div class=\"one-liner\">Never miss a Claude Code session waiting for your input<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">128<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AgentManager\u662f\u4e00\u6b3emacOS\u539f\u751f\u6d6e\u52a8\u7a97\u53e3\u5de5\u5177\uff0c\u4e13\u4e3a\u5e76\u884c\u8fd0\u884c\u591a\u4e2aClaude Code\u4f1a\u8bdd\u7684\u7528\u6237\u8bbe\u8ba1\uff0c\u81ea\u52a8\u60ac\u6d6e\u663e\u793a\u9700\u8f93\u5165\u7684\u4f1a\u8bdd\uff0c\u4e00\u952e\u8df3\u8f6c\u7ec8\u7aef\uff0c\u89e3\u51b3\u201c\u54ea\u4e2a\u4f1a\u8bdd\u5728\u7b49\u6211\u201d\u7684\u6548\u7387\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\/b8eecd87-a18c-4da1-a9f4-5062eeb1c4bc.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\/7975e2d2-0633-4212-affa-3a6b47e21b7c.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\/a9a5f40d-b987-48f3-8b34-16507aab416a.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\/68a85ac4-3574-466e-922e-99bcf95ccb9c.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\/716098e5-68a8-4842-a4cd-fadda44e2a02.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\/181e5018-d858-4035-b094-82aa2f1c232d.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\/d01ce4b9-b9e0-40ed-b962-a9dee43ac6c0.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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Claude Code\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u4f1a\u8bdd\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u539f\u751fSwift\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u6d6e\u52a8\u7a97\u53e3<\/span><br \/>\n            <span class=\"tag\">\u50cf\u7d20\u827a\u672fUI<\/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\u672c\u5730\u94a9\u5b50\u68c0\u6d4b\u7b49\u8bbe\u8ba1\uff0c\u4e3b\u8981\u5efa\u8bae\u5305\u62ec\uff1a\u9700\u589e\u52a0\u4e00\u952e\u53d6\u6d88\u6ce8\u518c\u94a9\u5b50\u529f\u80fd\uff1b\u5e0c\u671b\u652f\u6301Codex CLI\u3001Aider\u7b49\u66f4\u591aAI\u7f16\u7801\u5de5\u5177\uff1b\u8bf7\u6c42\u624b\u52a8\u7f6e\u9876\u4f1a\u8bdd\u4ee5\u4fbf\u76d1\u63a7\u957f\u4efb\u52a1\uff1b\u6709\u65e0iOS\u901a\u77e5\u548cLinux\/Windows\u652f\u6301\u8003\u8651\uff1b\u8fdc\u7a0bSSH\u4f1a\u8bdd\u7684\u517c\u5bb9\u6027\u95ee\u9898\u5f85\u89e3\u51b3\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                AgentManager\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u7528\u6781\u5ea6\u514b\u5236\u7684\u8bbe\u8ba1\u54f2\u5b66\u89e3\u51b3\u4e86\u4e00\u4e2a\u9ad8\u5ea6\u5177\u4f53\u7684\u75db\u70b9\u2014\u2014\u591a\u4e2aAI\u7f16\u7801\u4f1a\u8bdd\u7684\u201c\u63a5\u542c\u201d\u95ee\u9898\u3002\u4ece\u6280\u672f\u5c42\u9762\u770b\uff0c\u57fa\u4e8eClaude Code\u672c\u5730\u94a9\u5b50\u7684JSON\u72b6\u6001\u5199\u5165\u3001FSEvents\u76d1\u542c\u3001\u8fdb\u7a0b\u6811\u89e3\u6790\u7ec8\u7aef\u7a97\u53e3ID\uff0c\u6784\u5efa\u4e86\u4e00\u5957\u65e0\u9700\u7f51\u7edc\u3001\u65e0\u540e\u53f0\u5b88\u62a4\u8fdb\u7a0b\u7684\u7eaf\u672c\u5730\u72b6\u6001\u7ba1\u7406\u7ba1\u9053\u3002\u8fd9\u907f\u514d\u4e86\u5c4f\u5e55\u6293\u53d6\u6216\u8f93\u51fa\u65e5\u5fd7\u55c5\u63a2\u7684\u8106\u5f31\u6027\uff0c\u786e\u4fdd\u4e86\u201c\u9700\u8981\u8f93\u5165\u201d\u72b6\u6001\u7684\u8bed\u4e49\u51c6\u786e\u6027\u3002\u5176\u201c\u6bdb\u73bb\u7483\u6d6e\u52a8\u7a97\u53e3\u4ec5\u5728\u9700\u8981\u65f6\u663e\u73b0\u201d\u7684\u4ea4\u4e92\u8303\u5f0f\uff0c\u4ee5\u53ca\u5bf9\u901a\u77e5\u4e2d\u5fc3\u7684\u5f7b\u5e95\u5f03\u7528\uff08\u4ee3\u4e4b\u4ee5\u7cfb\u7edf\u7ea7\u6d6e\u7a97+\u732b\u53eb\u58f0\uff09\uff0c\u76f4\u51fb\u4e86\u591a\u4f1a\u8bdd\u5de5\u4f5c\u6d41\u7684\u8ba4\u77e5\u6469\u64e6\u6838\u5fc3\uff1a\u4e0d\u662f\u4fe1\u606f\u4e0d\u8db3\uff0c\u800c\u662f\u4fe1\u53f7\u8fc7\u8f7d\u3002\u4ece\u7528\u6237\u8bc4\u8bba\u7684\u6df1\u5ea6\u8ba8\u8bba\u53ef\u89c1\uff0c\u5f00\u53d1\u8005\u5bf9\u5171\u4eab\u914d\u7f6e\u6587\u4ef6\u5408\u5e76\u5199\u5165\u7684\u539f\u5b50\u6027\u5904\u7406\u3001\u8fdb\u7a0bPID\u590d\u7528\u9632\u6b3a\u8bc8\u3001\u8fdc\u7a0bSSH\u4f1a\u8bdd\u7684\u4e25\u683c\u8fb9\u754c\u58f0\u660e\uff0c\u90fd\u4f53\u73b0\u4e86\u4e00\u79cd\u201c\u57fa\u7840\u8bbe\u65bd\u601d\u7ef4\u201d\u2014\u2014\u529f\u80fd\u4e0d\u6ea2\u51fa\u5176\u5e94\u6709\u7684\u804c\u6743\u8303\u56f4\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8fd9\u6b3e\u5de5\u5177\u7684\u58c1\u5792\u540c\u6837\u660e\u663e\uff1a\u5b83\u5b8c\u5168\u7ed1\u5b9a\u4e8emacOS\u539f\u751f\u751f\u6001\uff08SwiftUI+AppKit\u7684\u7a97\u53e3\u5c42\u3001Automation API\u7684\u8df3\u8f6c\u5b9e\u73b0\uff09\uff0c\u8fd9\u610f\u5473\u7740\u5176\u7cbe\u81f4\u4f53\u9a8c\u65e0\u6cd5\u8de8\u5e73\u53f0\u3002\u66f4\u6839\u672c\u7684\u5c40\u9650\u5728\u4e8e\uff0c\u5b83\u7684\u4ef7\u503c\u76f4\u63a5\u53d7\u9650\u4e8eClaude Code\u7684\u6d41\u884c\u5ea6\u2014\u2014\u82e5\u7528\u6237\u8fc1\u79fb\u81f3\u5176\u4ed6AI\u5de5\u5177\uff08\u5982Cursor\u3001Codex CLI\uff09\uff0c\u5176\u72b6\u6001\u68c0\u6d4b\u673a\u5236\u4fbf\u9700\u4ece\u5934\u9002\u914d\uff0c\u800c\u5f00\u53d1\u8005\u5df2\u660e\u786e\u8868\u793a\u201c\u4e0d\u731c\u72b6\u6001\u201d\u3002\u6b64\u5916\uff0c\u51767\u5929\u514d\u8d39\u8bd5\u7528\u540e4.99\u7f8e\u5143\/\u6708\u7684\u5b9a\u4ef7\uff0c\u5728\u7eaf\u672c\u5730\u5de5\u5177\u4e2d\u504f\u9ad8\uff0c\u9664\u975e\u5b83\u672a\u6765\u80fd\u5efa\u7acb\u8de8\u4ee3\u7406\u751f\u6001\u7684\u201c\u6807\u51c6\u72b6\u6001\u5c42\u201d\u2014\u2014\u6210\u4e3a\u6240\u6709AI\u7f16\u7801\u7ec8\u7aef\u7684\u4e2d\u7acb\u76d1\u63a7\u9762\u677f\u3002\u76ee\u524d\uff0c\u5b83\u662f\u4e00\u6b3e\u670d\u52a1\u4e8e\u91cd\u5ea6Claude Code\u7528\u6237\u7684\u7cbe\u81f4\u6548\u7387\u914d\u4ef6\uff0c\u800c\u975e\u4e00\u4e2a\u66f4\u5b8f\u5927\u7684AI\u5f00\u53d1\u5e73\u53f0\u57fa\u7840\u8bbe\u65bd\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\">AgentManager<\/span>\n                <\/div>\n<div class=\"comment-content\">A floating macOS window for every Claude Code session. The moment one needs your input, it surfaces \u2014 and hides when all is clear. Jump to the exact terminal in one click. Native Swift, notarized, 7-day free trial.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt! \ud83d\udc4b<\/p>\n<p>I&#8217;m a solo developer from Japan, and like many of you I run several Claude Code sessions in parallel. I kept doing the same dumb thing: kick off a session, switch to something else, and realize ten minutes later that Claude had been sitting there waiting for a single &#8220;yes&#8221; the whole time.<\/p>\n<p>AgentManager is a native macOS app that fixes exactly that:<\/p>\n<p>\ud83d\udc08 A floating window shows every session&#8217;s state \u2014 running, waiting, done<br \/>\n\u26a1 It surfaces the moment a session needs your input, and hides when all is clear<br \/>\n\ud83d\uddb1\ufe0f Click a row to jump straight to the right terminal (iTerm2 pane, Terminal tab, VS Code \/ Cursor window\u2026)<br \/>\n\ud83d\udd14 Cat-meow alerts instead of Notification Center banners (mutable, promise)<br \/>\n\ud83c\udfa8 Sessions live as pixel-art cats in a little room \u2014 day and night change with your clock. There&#8217;s a Simple mode if cats aren&#8217;t your thing.<\/p>\n<p>A few things that matter to me:<\/p>\n<p>\u2022 Native Swift, ~2.5 MB download, notarized by Apple<br \/>\n\u2022 Your session data (prompts, paths, names) never leaves your Mac<br \/>\n\u2022 7-day free trial with no credit card. Then $4.99\/mo or $48\/yr.<\/p>\n<p>I&#8217;d love your feedback \u2014 especially which terminals or IDEs you&#8217;d like better jump support for. I&#8217;ll be here all day answering questions!<\/p><\/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\/@umechanhika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@umechanhika<\/a>&nbsp; The quiet\/no-banner design is a nice choice for multi-agent work. One edge case I would want to test is remote Claude Code inside tmux: if the state file syncs back but the jump target cannot map to the right pane, does AgentManager still show it as needs attention without trying to focus the wrong window?<\/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 exactly the problem with running a few Claude Code sessions in parallel &#8211; you either tab through terminals constantly to check status or you get pulled back way too late because you forgot which one was still going. a floating window that only shows up when something actually needs you is the right shape for this, way better than a generic desktop notification that gets lost in the pile. does it distinguish between &#8220;needs input&#8221; and &#8220;just finished, fyi&#8221; or is it one signal for both 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<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;<\/p>\n<p>You&#8217;ve described my pre-AgentManager life exactly \ud83d\ude04 And yes \u2014 they&#8217;re fully distinct states, styled by urgency. &#8220;Needs input&#8221; is amber: a pulsing glow, a stripe on the row&#8217;s edge, and the one short meow. &#8220;Just finished, fyi&#8221; is green and completely silent \u2014 the row turns calm, the window surfaces so you notice, but nothing chirps at you. Blue means &#8220;still working, don&#8217;t touch.&#8221;<\/p>\n<p>One subtle case I made sure of: when a session finishes and then just sits there, Claude Code emits an idle notification \u2014 that stays green. A finished session never escalates itself into fake &#8220;needs input&#8221; just because time passed. The amber signal only ever means a real blocker: a permission prompt, a plan approval, or a question waiting on 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>hooks in ~\/.claude\/settings.json is the robust call \u2014 the seam is that it&#8217;s one shared file. the other claude code watchers on this page register there too, and an uninstall leaves a stale path still firing on every event.<\/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\/@qifengzheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@qifengzheng<\/a>&nbsp;<\/p>\n<p>You&#8217;ve found the real seam, and I won&#8217;t pretend otherwise. What AgentManager does about the shared-file half: registration is a merge, not a write \u2014 it checks whether its command already exists per event, appends alongside other tools&#8217; hooks without touching them, and the edit is a text splice that only modifies the top-level hooks key, so your formatting, comments, and symlinks survive. A .bak is written first, and if the JSON doesn&#8217;t parse, it refuses to write at all rather than &#8220;fix&#8221; a file other tools depend on.<\/p>\n<p>One deliberate choice against dangling: the hook script and binary are installed under ~\/.claude\/agent-manager\/, not inside the app bundle \u2014 so moving or deleting the .app doesn&#8217;t leave settings.json pointing into a Trash&#8217;d bundle, and the path is written as $HOME\/&#8230; so it survives machine migrations.<\/p>\n<p>But the uninstall half of your point stands: today there&#8217;s no one-click unregister, so fully removing AgentManager means cleaning its entries out of settings.json yourself. That&#8217;s exactly the stale-path scenario you&#8217;re describing and it deserves a proper &#8220;remove hooks&#8221; button that does the surgical reverse of registration. It&#8217;s going on the list \u2014 this is the most technically useful comment on the page, 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>Mostly Claude Code as the daily driver, with Codex CLI as the second seat and Aider for quick one-off edits. Codex is the one I d want next since it has a hooks\/notify config, so a small state-writer there would slot straight into your FSEvents watcher without you inventing anything new. Aider s the weak link: no real lifecycle events, so it d be exactly the guess-from-output case you re right to refuse.<\/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\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;<\/p>\n<p>This is genuinely useful \u2014 you&#8217;ve basically written the integration sketch for me. Codex CLI&#8217;s notify config is exactly the kind of seam I&#8217;d want: a small state-writer emitting the same JSON into the watched directory, and the app wouldn&#8217;t even know the difference. The homework on my side is mapping its events onto the four-state model without cheating \u2014 the value here isn&#8217;t &#8220;a session exists,&#8221; it&#8217;s the reliable distinction between blocked on you, working, and done, plus resolving the jump target the same way. If Codex&#8217;s events carry enough signal for that, it slots in; if they don&#8217;t, I&#8217;d rather wait than ship a lamp that lies.<\/p>\n<p>And agreed on Aider \u2014 no lifecycle events means it stays out on principle, not out of laziness. Thanks for taking the time on this thread; Codex just moved to the top of the &#8220;next agent&#8221; shortlist.<\/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, especially the jump-to-terminal one click since that always trips me up. One thing that would seal the deal for me is per project status icons in the floating window itself, like a little red dot or spinner right next to a project name so I can tell at a glance which session needs me without scanning titles. Would also be great if those icons respected Do Not Disturb or hid when a session is just running a long thinking step versus truly waiting on me.<\/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\/@dndcltj\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dndcltj<\/a>&nbsp;<\/p>\n<p>On the &#8220;which session needs me&#8221; part \u2014 the state lamps are already there: every row has a colored light next to the project name, and the waiting one is a pulsing amber glow with a stripe down the row&#8217;s edge, so it catches your eye before you&#8217;ve read anything. Blue with a slow breathing animation means &#8220;working, leave it alone.&#8221; And that thinking-vs-waiting distinction is structural: state comes from Claude Code&#8217;s own hook events, so a long thinking step or tool call stays blue \u2014 amber only fires on explicit signals like a permission prompt or a question to you. No false alarms mid-stream.<\/p>\n<p>But if what you&#8217;re after is telling which project is which without reading names \u2014 like a distinct icon or color per project \u2014 that doesn&#8217;t exist yet, and it&#8217;s a genuinely good idea. Right now identity is the project folder name plus stable row order (rows never reorder, so muscle memory does a lot). A per-project visual mark would make that instant. Adding it to the list \u2014 and tell me which you actually meant, I&#8217;m curious now \ud83d\ude04<\/p>\n<p>DND is a good call too: there are no Notification Center banners at all and the meow is mutable, but auto-quieting during a macOS Focus session would be the polished version. Noted!<\/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>Finally something that solves the &#8220;which Claude session is stuck&#8221; problem. The floating window just appearing when input is needed is exactly the kind of low-key native touch I want from a Mac 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ozandenizm84853\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ozandenizm84853<\/a>&nbsp;<\/p>\n<p>Thank you! &#8220;Low-key&#8221; is the highest compliment for this app \u2014 the bar I set was that a good Mac utility should feel like part of the OS: show up exactly when needed, disappear the moment it&#8217;s not, and never ask for attention it hasn&#8217;t earned. That&#8217;s also why there are no Notification Center banners \u2014 the window appearing quietly is the notification.<\/p>\n<p>Hope it keeps your stuck sessions from hiding on you \ud83d\udc08<\/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 native Swift choice really shows here \u2014 having a floating window that just appears and disappears instead of fighting with another Electron app is such a relief.<\/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\/@ege_karama27779\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ege_karama27779<\/a>&nbsp;<\/p>\n<p>Thank you \u2014 that&#8217;s exactly why it had to be native. An app whose job is to appear and vanish dozens of times a day, while living permanently next to your real work, has no business shipping a browser runtime with it. Swift + AppKit keeps the panel instant and the footprint tiny, so it earns its spot as a resident instead of competing with your actual tools for resources.<\/p>\n<p>(Also, pixel-art cats deserve to be rendered natively. It&#8217;s a matter of principle \ud83d\udc08)<\/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 track multiple Claude Code sessions at once, or is it one window per session? Wondering if this gets noisy if you&#8217;re juggling several 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\/@talhakhalidmtk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@talhakhalidmtk<\/a>&nbsp;<\/p>\n<p>One window, all sessions \u2014 each gets a row with its own state light, and the list grows as sessions come and go. No per-session windows to manage.<\/p>\n<p>Noise was actually the main design constraint, because the whole point is that you&#8217;re juggling several agents and the tool shouldn&#8217;t add to it. So: the window hides itself whenever nothing needs you and only surfaces when a session is waiting or finished. There are no Notification Center banners at all. And the sound alert is a single short meow with a global debounce \u2014 if three sessions hit &#8220;waiting&#8221; at once, you hear one meow, not three. The more agents you run, the more that restraint matters.<\/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 looks super useful for keeping tabs on multiple sessions, honestly the auto-surfacing is a nice touch. one thing though, it would be great if you could pin certain sessions to stay visible even when nothing needs input, so you can monitor like a long-running build or deploy without it disappearing on 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sebahat45760404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebahat45760404<\/a>&nbsp;<\/p>\n<p>Thanks! Good news for the build\/deploy case specifically: you may not need to watch it at all. The moment a long-running session finishes, it flips to &#8220;done&#8221; and the window surfaces on its own \u2014 completion is treated as an event worth your attention, same as waiting for input. And while it&#8217;s running, the menu bar keeps a live per-state count, so a glance tells you it&#8217;s still going without any window open. \u2325Space summons the full list any time you want a closer look.<\/p>\n<p>That said, &#8220;keep it visible, I just want to watch&#8221; is a fair and different ask \u2014 and you&#8217;re actually the second person requesting a pin option today, which officially moves it up the list \ud83d\ude04 Auto-hide is the default because staying quiet when nothing needs you is the app&#8217;s whole personality, but an opt-in pin wouldn&#8217;t fight that. Thanks for the concrete use case!<\/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>Claude Code sessions that need input mid-task is real pain, especially when you&#8217;re juggling multiple things. Does it support notifications on iOS or just Mac desktop alerts?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;<\/p>\n<p>Mac only, and honestly it&#8217;s likely to stay that way for a while. The app is built around a strict &#8220;nothing leaves your Mac&#8221; rule \u2014 no server, no network, session state is just local files. Pushing notifications to an iPhone would mean routing your session activity through some backend, and that&#8217;s a privacy tradeoff I don&#8217;t want to make casually.<\/p>\n<p>It&#8217;s also a slightly different problem: AgentManager is built for the at-your-desk case \u2014 you&#8217;re juggling sessions and other work on the same machine, and it surfaces the one that needs you. If you&#8217;re away from the Mac entirely, a blocked session usually isn&#8217;t something you can act on anyway (the terminal&#8217;s back at your desk!). That said, if &#8220;know before I walk back&#8221; is a real need for you, I&#8217;d love to hear the scenario \u2014 it&#8217;d have to be designed carefully, but I&#8217;m listening.<\/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 local hooks approach is the right tradeoff here. Once an agent has access to repos, terminals, and approval prompts, I want the session monitor to be boring infrastructure: local state, no output scraping, no network dependency, and stable session identity so I can trust the jump target.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;<\/p>\n<p>&#8220;Boring infrastructure&#8221; is the nicest thing you could call it \u2014 that was the design brief, verbatim. A tool that sits between you and approval prompts has no business being clever.<\/p>\n<p>On session identity, since you brought it up: each session is keyed by Claude Code&#8217;s own session ID, and the hook records the owning claude process&#8217;s PID plus its start time \u2014 so if a PID gets recycled by the OS, a dead session can&#8217;t masquerade as alive. Sessions whose process vanished without a clean SessionEnd get swept out automatically. And the jump target is captured at hook time, not guessed at click time \u2014 e.g. the exact iTerm2 pane GUID is resolved by walking the process tree when the event fires, so the click lands where the session actually lives.<\/p>\n<p>State files are written atomically to a local directory, the app just watches it with FSEvents, and there&#8217;s no daemon and no network in the loop. If it ever stops being boring, that&#8217;s a regression \ud83d\ude04<\/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 hooks-based detection is the right call, way more robust than scraping terminal output. one case I didn&#8217;t see covered: what happens with a Claude Code session running on a remote box over SSH rather than locally on the Mac &#8211; does the hook binary need to be installed remote-side too, or is this strictly for local sessions right now? I run a mix of local and remote-server sessions and that&#8217;s usually where these menu-bar tools stop working for me.<\/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;<\/p>\n<p>Honest answer: strictly local right now. The hook fires on the machine where Claude Code runs, so in an SSH session it would run remote-side and write its state file to the remote filesystem \u2014 which the Mac app never sees, since it just watches a local directory. So installing the binary remotely wouldn&#8217;t help today; you&#8217;d get state files stranded on the server.<\/p>\n<p>Could it work? Partially, in principle. Detection is just JSON files in a directory, so a synced\/mounted ~\/.claude\/agent-manager\/sessions\/ could carry remote state to the Mac \u2014 that half is plumbing. The hard half is the jump: locally the hook walks the process tree to find the exact terminal pane, and that chain breaks at the SSH boundary. Mapping a remote session back to the local terminal that&#8217;s SSH&#8217;d into it needs a different mechanism, and I&#8217;d rather not ship a jump that lands on the wrong window.<\/p>\n<p>You&#8217;re right that this is where menu-bar tools usually stop, and a local+remote mix is a real workflow \u2014 it&#8217;s on my radar. Out of curiosity: are your remote sessions inside tmux\/screen on the server, or plain SSH in a local terminal tab? That changes which approach would actually be reliable.<\/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>That&#8217;s clever. Any plan to support Linux or Windows once Claude Code agents run there?<\/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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;<\/p>\n<p>Thanks! Honest answer: no near-term plans. AgentManager is native Swift (SwiftUI + AppKit) on purpose, and the parts that make it feel good are exactly the parts that don&#8217;t port \u2014 the always-on-top panel, FSEvents watching, and the terminal-jump layer built on macOS Automation\/Accessibility APIs. A Linux or Windows version wouldn&#8217;t be a port, it&#8217;d be a second app written from scratch.<\/p>\n<p>The one honest caveat: the concept is portable. Detection is just Claude Code hooks writing local JSON, nothing Mac-specific about that half. But as a solo dev I&#8217;d rather make one platform genuinely excellent than three platforms mediocre \u2014 so for now, Mac gets all of it. If demand elsewhere gets loud enough, that math can change \ud83d\ude04<\/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>Honestly this looks super useful since I constantly lose track of which Claude session is actually waiting on me. One thing though, would be great if it could play a subtle sound or send a native macOS notification when a session needs input, kind of like how Messages does it. Sometimes the floating window might be hidden behind another app and I would totally miss it otherwise.<\/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\/@araczeliha97691\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@araczeliha97691<\/a>&nbsp;<\/p>\n<p>Good news \u2014 the sound already exists, and it&#8217;s the app&#8217;s signature move: a subtle cat meow (~0.35s) the moment a session starts waiting \ud83d\udc31 It&#8217;s mutable if meows aren&#8217;t your office vibe, and if several sessions hit &#8220;waiting&#8221; at once it&#8217;s debounced so you get one meow, not a chorus.<\/p>\n<p>On the buried-window worry: the floating window is always-on-top, and it re-surfaces in front the moment any session needs you \u2014 so it can&#8217;t actually get lost behind other apps. Between the meow, the auto-surface, and the live counts in the menu bar, I deliberately skipped Notification Center: banners pile up, get swiped away, and end up as one more inbox to ignore. The window appearing is the notification, and it disappears once you&#8217;ve handled things.<\/p>\n<p>Give the trial a spin and tell me if a waiting session ever actually slips past you \u2014 if it does, that&#8217;s a bug in my book and I want to hear about 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>Finally something that solves the constant tab-switching annoyance with Claude Code. The auto-surfacing when input is needed feels genuinely native, not bolted 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@erengilsed11978\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@erengilsed11978<\/a>&nbsp;<\/p>\n<p>Thank you! &#8220;Not bolted on&#8221; is exactly what I was going for \u2014 the app only speaks up when a session actually needs you, and gets out of the way the rest of the time.<\/p>\n<p>And &#8220;native&#8221; goes all the way down: it&#8217;s Swift (SwiftUI + AppKit), the whole download is ~2.5 MB, and everything runs locally on your Mac. The tab-switching tax was the whole reason I built it, so it&#8217;s great to hear it lands.<\/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>Missing a Claude Code session waiting for input is such a specific but real annoyance once you&#8217;re running multiple sessions. Does it notify across all active sessions simultaneously, or do you need to check in on each one individually?<\/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;<\/p>\n<p>Exactly the annoyance that made me build it \ud83d\ude04 And no individual checking needed \u2014 every session registers automatically and they all live in one floating window, each with its own state light. The moment any of them starts waiting, the window surfaces with that row pulsing amber; when nothing needs you, it hides itself. The menu bar shows a live count too, so even with the window hidden you can see &#8220;3 running, 1 waiting&#8221; at a glance.<\/p>\n<p>Small detail I&#8217;m fond of: if several sessions hit &#8220;waiting&#8221; at nearly the same time, the sound alert has a global debounce so you get one meow, not a chorus. From the window it&#8217;s one click to jump to the exact terminal (iTerm2 pane, VS Code window, etc.) that needs the answer.<\/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 click-to-jump shortcut is great, but it would be even better if I could pin certain sessions to stay visible even when idle, since I often switch between two long-running tasks and lose track of which window belongs to which 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\/@senargf3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@senargf3<\/a>&nbsp;<\/p>\n<p>Good news on half of this: sessions never leave the list while they&#8217;re alive \u2014 idle ones stay right there as grey rows, and every row is labeled with its project folder name. So &#8220;which window belongs to which project&#8221; is exactly what the list answers: glance, click, and you&#8217;re in that project&#8217;s terminal. The window itself is also one \u2325Space away at any moment, even when it&#8217;s auto-hidden.<\/p>\n<p>The other half \u2014 keeping it visible through idle instead of auto-hiding \u2014 is a fair ask. Auto-hide is the default because &#8220;quiet when nothing needs you&#8221; is the app&#8217;s whole personality, but a pin option for people juggling two long-running tasks wouldn&#8217;t fight that. Adding it to the list \u2014 thanks for the concrete use case, that&#8217;s the kind that actually shapes the 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\">\n<p>Congratulations on the launch! One question: does it also notify when a session finishes cleanly, or only when one is blocked waiting for input? I run long pipeline jobs, and knowing when they are done matters as much as knowing when they are stuck.<\/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\/@alieksia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alieksia<\/a>&nbsp;<\/p>\n<p>Thank you! \ud83d\ude4c And yes \u2014 a clean finish is a first-class event, not just blocked-waiting. When a session finishes, its row turns green and the floating window surfaces the same way it does for waiting; it only hides when there&#8217;s nothing left that needs your attention. The menu bar also shows a live count per state, so you can see &#8220;2 running, 1 done&#8221; at a glance.<\/p>\n<p>One detail that matters for long pipeline jobs: &#8220;done&#8221; isn&#8217;t premature. If the main response stops but background subagents are still working, the session stays &#8220;processing&#8221; and only flips to done when the last one actually finishes.<\/p>\n<p>The only thing reserved for waiting is the sound alert \u2014 a finished session surfaces silently, so a long run ending doesn&#8217;t interrupt whatever you switched to. If you&#8217;d want an optional sound for completions too, that&#8217;s an easy toggle to consider \u2014 tell me and I&#8217;ll put it on the list!<\/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>Really I&#8217;m here for the cat sounds. Though I&#8217;d want per-session pitch, so I know which one is meowing.<\/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\/@aidan_codefox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aidan_codefox<\/a>&nbsp;<\/p>\n<p>Finally, someone here for the right reasons \ud83d\ude04<\/p>\n<p>And honestly\u2026 that&#8217;s not even a joke to me. The meow is procedurally synthesized (no audio files), so giving each session its own pitch is genuinely doable \u2014 your refactor session as the deep old tomcat, the test runner as the anxious kitten. Adding it to the list, and I can&#8217;t believe this is now a roadmap item. 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>&#8216;hides when all is clear&#8217; is the half most tools skip, they just add alerts. with several sessions waiting at once, does it rank which to surface 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<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;<\/p>\n<p>Thanks \u2014 &#8220;hides when all is clear&#8221; was actually the starting point of the whole app. The alert part is easy; the quiet part is what makes it livable.<\/p>\n<p>Honest answer: no ranking. All sessions live in one list in a stable order (by launch time), and rows never reorder on state changes \u2014 waiting ones just light up with a pulsing amber stripe. That&#8217;s deliberate: with a handful of parallel sessions, reordering would break your spatial memory of &#8220;top row = the refactor, second = the tests&#8221;, and you&#8217;d misclick jumps. A stable list you can scan in a second beat every ranking scheme I tried.<\/p>\n<p>In practice you glance at the amber rows, click the one you care about, and you&#8217;re in the right terminal. If you&#8217;d find explicit prioritization (e.g. &#8220;waiting longest first&#8221;) genuinely useful though, I&#8217;m open to it \u2014 that&#8217;s exactly the kind of feedback I&#8217;m here 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8216;waiting for input&#8217; detection is the whole value here \u2014 auto-surfacing and jumping to the exact iTerm2\/Cursor pane is what I&#8217;d actually use daily. How does it read session state under the hood: scraping terminal output \/ the TTY, or hooking the Claude Code process directly? Mostly wondering how it avoids false &#8216;waiting&#8217; signals when a session is just mid-stream on a long tool 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\/@noctis06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@noctis06<\/a>&nbsp;<\/p>\n<p>Great question! It&#8217;s neither \u2014 no TTY scraping, no process hooking. AgentManager uses Claude Code&#8217;s official hooks: it registers them in ~\/.claude\/settings.json, Claude Code invokes a tiny binary on every lifecycle event (prompt submit, tool use, notifications, stop\u2026), that writes per-session state to a local JSON file, and the app watches it with FSEvents. No polling, no daemon, no network \u2014 everything stays on your Mac.<\/p>\n<p>False &#8220;waiting&#8221; can&#8217;t really happen because state is never inferred from output or silence. &#8220;Waiting&#8221; only comes from explicit signals \u2014 a permission prompt, a plan-approval dialog, or an AskUserQuestion call. A long tool call just fires PreToolUse and stays &#8220;processing&#8221; until it finishes, no matter how long it streams. Trickiest edge case was background subagents that outlive the main response \u2014 those are tracked too, so sessions don&#8217;t flip to &#8220;done&#8221; early.<\/p>\n<p>Happy to go deeper if you&#8217;re curious!<\/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 exactly the annoying Claude Code failure mode. The floating session state is useful, but the one-click jump back to the right terminal is the part that makes it feel workflow-native instead of just another alert layer.<\/p>\n<p>Also love the cat room, as long as Simple mode exists for when I need to pretend I am serious.<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;<\/p>\n<p>Thank you! And you nailed the design bet \u2014 alerts alone just move the problem (&#8220;now I have unread alerts&#8221;). The jump is what closes the loop, so I spent a silly amount of time on precision: iTerm2 lands on the exact pane, Terminal and Ghostty on the tab, VS Code \/ Cursor \/ Zed on the right project window.<\/p>\n<p>And yes, Simple mode exists precisely for screen-sharing-with-your-manager moments \ud83d\ude04 The cats will wait for you.<\/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\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/M27GFS5JVAAOYC\" class=\"app-title\">Grindoro<\/a><\/p>\n<div class=\"one-liner\">Focus with others through synchronized Pomodoro sessions<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">124<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Grindoro \u662f\u4e00\u6b3e\u901a\u8fc7\u540c\u6b65\u756a\u8304\u949f\u5de5\u4f5c\u65f6\u6bb5\uff0c\u8ba9\u7528\u6237\u4e0e\u5168\u7403\u964c\u751f\u4eba\u5171\u540c\u4e13\u6ce8\u3001\u6d88\u9664\u72ec\u81ea\u5de5\u4f5c\u5b64\u72ec\u611f\u7684\u751f\u4ea7\u529b\u5de5\u5177\uff0c\u6838\u5fc3\u89e3\u51b3\u201c\u81ea\u5f8b\u96be\u575a\u6301\u3001\u4e13\u6ce8\u611f\u5b64\u7acb\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\/a94e8d52-ba73-4c9c-b4d5-951546ab149b.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\/1e608649-e3e5-4fa5-9677-8725f2823968.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\/6408a993-adc1-47c1-b3a8-dabe25237de5.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\/2b88927b-b057-4b88-bc87-b4c7b98d4e22.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\/f8dc4a29-3917-4c36-b01b-47956b7624da.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\/85790730-31f7-497b-905c-8f9f2e52e90f.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\/86dbf0bb-171f-41a7-b75e-64be8e9ae7dc.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\/16028be3-bcc0-420a-a46b-aaf0ab5de194.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\">Productivity<\/span><br \/>\n            <span class=\"tag\">Task Management<\/span><br \/>\n            <span class=\"tag\">Social Networking<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u793e\u4ea4\u756a\u8304\u949f<\/span><br \/>\n            <span class=\"tag\">\u540c\u6b65\u4e13\u6ce8<\/span><br \/>\n            <span class=\"tag\">\u4f53\u53cc\u6548\u5e94<\/span><br \/>\n            <span class=\"tag\">\u4e60\u60ef\u517b\u6210<\/span><br \/>\n            <span class=\"tag\">\u6e38\u620f\u5316<\/span><br \/>\n            <span class=\"tag\">\u5496\u5561\u80fd\u91cf<\/span><br \/>\n            <span class=\"tag\">\u6bcf\u5468\u5496\u5561\u9986<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u793e\u533a\u884c\u52a8<\/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\u540c\u6b65\u4e13\u6ce8\u201d\u89e3\u51b3\u5b64\u72ec\u611f\u7684\u8bbe\u8ba1\uff0c\u5e76\u5173\u6ce8\u5176\u5dee\u5f02\u5316\u7ec6\u8282\u3002\u90e8\u5206\u7528\u6237\u5173\u5fc3\uff1a\u8fdf\u5230\u80fd\u5426\u76f4\u63a5\u52a0\u5165\u5f53\u524d\u540c\u6b65\u65f6\u6bb5\uff08\u7b54\uff1a\u53ef\u7acb\u5373\u52a0\u5165\u6bcf15\/30\u5206\u5f00\u59cb\u7684\u8f6e\u6b21\uff09\uff1b\u5496\u5561\u80fd\u91cf\u662f\u5426\u4e3a\u786c\u6027\u9650\u5236\uff08\u7b54\uff1a\u662f\u771f\u5b9e\u9884\u7b97\uff0c\u4f46\u53ef\u901a\u8fc7\u5b8c\u6210\u5de5\u4f5c\u89e3\u9501\u65e0\u9650\u6a21\u5f0f\uff09\uff1b\u7f3a\u5e2d\u60e9\u7f5a\uff08\u7b54\uff1a\u6bcf\u65e5\u5496\u5561\u5237\u65b0\uff0c\u6bcf\u5468\u53ea\u9700\u767b\u5f555\u5929\u6536\u96c6\u5496\u5561\u9986\uff0c\u6709\u8865\u7b7e\u76fe\uff09\u3002\u5efa\u8bae\u589e\u52a0\u4e13\u6ce8\u8ba1\u5212\u4e0e\u5b9e\u9645\u5b8c\u6210\u5ea6\u5bf9\u6bd4\u7684\u590d\u76d8\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                Grindoro \u806a\u660e\u5730\u5c06\u201c\u4f53\u53cc\u6548\u5e94\u201d\uff08body doubling\uff09\u8fd9\u4e00\u88ab\u7814\u7a76\u9a8c\u8bc1\u7684\u8ba4\u77e5\u7b56\u7565\uff0c\u4ea7\u54c1\u5316\u4e3a\u201c\u5168\u7403\u540c\u6b65\u756a\u8304\u949f\u201d\uff0c\u907f\u5f00\u4e86\u4f20\u7edf\u756a\u8304\u949fApp\u201c\u5b64\u72ec\u8ba1\u65f6\u201d\u7684\u53d9\u4e8b\u9677\u9631\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u8ba1\u65f6\uff0c\u800c\u5728\u4e8e\u201c\u5171\u540c\u5728\u573a\u201d\u7684\u611f\u89c9\u2014\u2014\u7528\u6237\u5e76\u975e\u4e0e\u964c\u751f\u4eba\u793e\u4ea4\uff0c\u800c\u662f\u5171\u4eab\u4e00\u4e2a\u8d77\u6b62\u8282\u594f\uff0c\u8fd9\u6070\u597d\u5229\u7528\u4e86\u4ed6\u4eba\u5728\u573a\u5e26\u6765\u7684\u5fae\u5f31\u793e\u4f1a\u538b\u529b\uff0c\u5374\u53c8\u901a\u8fc7\u9690\u85cf\u6d3b\u52a8\u6d41\u3001\u7981\u6b62\u804a\u5929\u7b49\u65b9\u5f0f\u6d88\u9664\u4e86\u591a\u6570\u793e\u4ea4App\u5e26\u6765\u7684\u5206\u5fc3\u3002\u8fd9\u79cd\u201c\u8f7b\u793e\u4ea4\u3001\u91cd\u5b58\u5728\u201d\u7684\u5b9a\u4f4d\uff0c\u6bd4\u201c\u4e13\u6ce8\u68ee\u6797\u201d\u7b49\u6e38\u620f\u5316\u5de5\u5177\u66f4\u76f4\u63a5\u5730\u89e6\u8fbe\u4e86\u81ea\u5f8b\u7684\u6838\u5fc3\u77db\u76fe\uff1a\u610f\u5fd7\u529b\u8584\u5f31\u5f80\u5f80\u6e90\u4e8e\u7f3a\u4e4f\u5916\u90e8\u951a\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u53ef\u6301\u7eed\u6027\u9762\u4e34\u6311\u6218\uff1a\u5168\u7403\u540c\u6b65\u4f9d\u8d56\u8db3\u591f\u5927\u7684\u540c\u65f6\u5728\u7ebf\u7528\u6237\u57fa\u6570\uff0c\u82e5\u7528\u6237\u91cf\u4e0d\u8db3\uff0c\u5373\u65f6\u52a0\u5165\u7684\u201c\u5171\u540c\u611f\u201d\u5c06\u5927\u5e45\u524a\u5f31\u3002\u6b64\u5916\uff0c\u201c\u5496\u5561\u80fd\u91cf\u201d\u4f5c\u4e3a\u786c\u6027\u9884\u7b97\u7684\u8bbe\u5b9a\u5b58\u5728\u98ce\u9669\u2014\u2014\u5b83\u88ab\u5305\u88c5\u6210\u201c\u8ba9\u6bcf\u6b21\u4e13\u6ce8\u66f4\u523b\u610f\u201d\uff0c\u4f46\u5b9e\u8d28\u4e0a\u662f\u4e00\u79cd\u989d\u5916\u7684\u8ba4\u77e5\u5f00\u9500\uff1a\u7528\u6237\u9700\u7ba1\u7406\u53ef\u7528\u80fd\u91cf\u6c34\u5e73\uff0c\u5e76\u5728\u80fd\u91cf\u7528\u5c3d\u65f6\u88ab\u8feb\u505c\u6b62\uff0c\u8fd9\u4e0e\u201c\u60f3\u4e13\u6ce8\u5c31\u4e13\u6ce8\u201d\u7684\u6838\u5fc3\u9700\u6c42\u5b58\u5728\u5185\u5728\u51b2\u7a81\u3002\u5c3d\u7ba1\u53ef\u4ee5\u901a\u8fc7\u201c\u78e8\u8c46\u673a\u201d\u5956\u52b1\u89e3\u9501\u65e0\u9650\u6a21\u5f0f\uff0c\u4f46\u8fd9\u4f7f\u6e38\u620f\u5316\u7cfb\u7edf\u53d8\u5f97\u590d\u6742\uff0c\u53ef\u80fd\u8ba9\u7528\u6237\u4e3a\u4e86\u201c\u89e3\u9501\u201d\u800c\u673a\u68b0\u5b8c\u6210\u4efb\u52a1\uff0c\u504f\u79bb\u4e13\u6ce8\u672c\u8eab\u7684\u76ee\u6807\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u7f3a\u5e2d\u538b\u529b\u3001\u88ab\u52a8\u793e\u4ea4\u7684\u9700\u6c42\uff0c\u63d0\u793a\u5f00\u53d1\u8005\u9700\u6301\u7eed\u5e73\u8861\u201c\u8f7b\u76c8\u7684\u793e\u4f1a\u8d23\u4efb\u201d\u4e0e\u201c\u4ee4\u4eba\u4e0a\u763e\u7684\u6e38\u620f\u5316\u201d\u3002\u957f\u671f\u770b\uff0cGrindoro \u80fd\u5426\u4ece\u201c\u5c0f\u4f17\u65b0\u5947\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u65e5\u5e38\u4e60\u60ef\u57fa\u7840\u8bbe\u65bd\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u7528\u6237\u57fa\u6570\u589e\u957f\u524d\u4fdd\u6301\u201c\u4efb\u4f55\u65f6\u5019\u52a0\u5165\u90fd\u4e0d\u5b64\u5355\u201d\u7684\u6838\u5fc3\u4f53\u9a8c\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\">Grindoro<\/span>\n                <\/div>\n<div class=\"comment-content\">Grindoro is a Pomodoro focus app that makes productivity feel less lonely. Join synchronized focus sessions, turn habits and goals into tasks, manage your daily coffee energy, and collect weekly caf\u00e9s as proof of your consistency.<\/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 built Grindoro because I was tired of productivity apps that feel lonely.<\/p>\n<p>Most Pomodoro timers help you track time. Grindoro is designed to make focus feel like a shared ritual.<\/p>\n<p>Every session starts in a global rhythm \u2014 at the top of the hour or the 30-minute mark \u2014 so you\u2019re not just starting a timer, you\u2019re joining other people who are also trying to focus right now.<\/p>\n<p>Inside Grindoro, you can:<br \/>\n\u2013 Start synchronized focus sessions<br \/>\n\u2013 Use Light, Medium, or Dark Roast focus modes<br \/>\n\u2013 Build routines, single tasks, and bigger goals<br \/>\n\u2013 Manage your daily coffee energy<br \/>\n\u2013 Earn XP and boosters<br \/>\n\u2013 Collect weekly caf\u00e9s as part of your focus passport<\/p>\n<p>The idea is simple: discipline feels easier when it feels alive.<\/p>\n<p>I\u2019d love your feedback on the concept, the onboarding, and the weekly caf\u00e9 mechanic.<\/p>\n<p>Thanks for checking it out \u2615<\/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>body doubling for focus work actually has real research behind it so this isn&#8217;t just a gimmick layered on top of a timer app. the coffee\/cafe collection as a consistency proof is a nice touch too, gives you something to look back on besides a streak number that resets your motivation to zero the day you miss it. do the synchronized sessions show who else is in them or is it fully anonymous, just a shared clock ticking?<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Thanks, I really appreciate that!<br \/>Especially your point about consistency needing something more meaningful than a streak number.<\/p>\n<p>The sessions aren\u2019t fully anonymous. Before joining, you can see a live feed of who\u2019s there and what they\u2019re working on. Tasks are public by default, but users can turn that off in Settings.<\/p>\n<p>Once you join the session, the feed disappears so it doesn\u2019t become another distraction. You still know others are focusing with you, but the interface gets out of the way.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/070ea8eb-7f6b-45cb-b2a5-5000c8e4262d.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>The synchronized-on-the-hour hook is the interesting part \u2014 that s the difference between a timer and a room. But it cuts both ways for a solo user: if I sit down at 2:14 and the next global session starts at 2:30, am I waiting 16 minutes, or can I start solo right away and get folded into the next synced block when it comes around? And is the daily coffee energy an actual cap on how many sessions I can run, or purely cosmetic XP?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;At 2:14, you wouldn\u2019t need to wait until 2:30 \u2014 the next Light Roast 15\/5 session starts at 2:15, so you could jump in almost immediately.<\/p>\n<\/p>\n<p>You can also start a <strong>Solo session<\/strong> or a free-form <strong>Timer at any time<\/strong>. Those stay separate rather than automatically folding into the next global block, so the choice is between joining the shared rhythm or starting immediately.<\/p>\n<\/p>\n<p>Coffee is a real session budget, not just cosmetic XP. I designed it to make each focus session feel intentional, rather than something you start and abandon without thinking. <\/p>\n<\/p>\n<p>At the same time, every completed session charges the <strong>Grind Machine<\/strong>, which can unlock unlimited coffee for a day or longer as a reward. That creates a kind of release valve: periods of intentional limits, followed by a more relaxed stretch where you can focus as much as you want.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4187c8f7-2a41-4a00-b6f1-ee05e0066930.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>I wanted to share a little more about two community mechanics in Grindoro &#8211; <strong>Shared Coffee<\/strong> and <strong>Live Momentum<\/strong>.<\/p>\n<p><strong>Shared Coffee<\/strong> &#8211; coffee is the energy used to start focus sessions. If someone is running low, another person can send them a cup while focusing. Sometimes you support someone else, and sometimes a coffee arrives exactly when you need it.<\/p>\n<p><strong>Live Momentum<\/strong> &#8211; the more people focusing at the same time, the stronger the shared XP boost becomes. Your work remains personal, but showing up together creates extra momentum for everyone.<\/p>\n<\/p>\n<p>I built both because I wanted the social layer to be useful without becoming distracting. There\u2019s no need to choose a group, introduce yourself, chat, or manage another feed. You simply focus &#8211; and your presence can quietly help someone else keep going.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ba2591ed-dae4-4785-aae0-0ec6c4868b60.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>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>Love that you turned collecting weekly cafes into proof of consistency, it reframes focus as something social and worth savoring rather than a lonely grind.<\/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\/@ilko_kacharov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilko_kacharov<\/a>&nbsp;Thanks, Ilko! Really glad that resonated!<\/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>Synchronized pomodoro with others is simple but actually effective for accountability. I tend to work better knowing someone else is in the session. Is there a way to see what people are working on or just the timer?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Thank you! You can see more than just the timer. There\u2019s a lightweight activity feed with other people\u2019s avatars and what they\u2019re currently working on, while the session itself shows how many people are focusing alongside you.<\/p>\n<p>I\u2019ve intentionally kept it minimal, no chat or busy social feature, so it adds presence and accountability without becoming another distraction.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c62aca0b-3c20-44cb-b4f7-b915bccecd4b.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>the coffee-energy and weekly-cafe mechanic is cute, but I&#8217;d want to know what happens on a day you just don&#8217;t show up &#8211; does the streak\/energy reset hard, or does it forgive a skip? Sergey&#8217;s comment below about not wanting this to become a streak-pressure machine is the right worry, since a lot of these habit apps end up optimizing for not-breaking-the-chain instead of actual focused work getting done.<\/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;That\u2019s a fair concern &#8211; I don\u2019t want Grindoro to punish people for missing a day.<\/p>\n<p>Coffee refills daily, so skipping a day doesn\u2019t create a hard energy penalty. For the weekly caf\u00e9, simply opening the app counts as a visit, and you only need 5 visits per week &#8211; so you can miss 2 days and still collect it.<\/p>\n<p>There is a daily streak, but missed days can be covered by streak shields. You collect shield fragments after focus sessions and combine them into shields, so one busy day doesn\u2019t automatically erase your progress.<\/p>\n<p>The goal is to reward returning and doing meaningful focus work &#8211; not create anxiety around maintaining a perfect chain.<\/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>That synchronized focus sessions idea is genuinely clever, makes long pomodoro stretches feel way more motivating when you know others are grinding alongside you.<\/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\/@mertrstemobygx\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mertrstemobygx<\/a>&nbsp;<\/p>\n<p>Thank you! That sense of quietly grinding alongside others is exactly what I wanted to create.<\/p>\n<p>There\u2019s also a small community-support mechanic around coffee. During a session, you can share a coffee with someone who\u2019s running low, and sometimes another person may send one to you. It\u2019s a lightweight way to help each other keep going without adding chat or turning the app into a social network<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f824ef56-399e-419b-ba41-0bbe92f156d4.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>This is neat. Does the group sync adjust if someone joins late to a session?<\/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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;Yes! If you join late, you enter the session at its current point, so you sync to the shared timer instead of restarting it for yourself.<\/p>\n<p>You can see that in the Live Activity too: the faded part on the left shows the portion of the session that had already passed before you joined, while the highlighted part shows your active segment. The same idea also carries into your stats, so it\u2019s clear when you joined and how much of the shared session you actually completed.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7fddb95e-fa58-4f65-bbbd-34ada54b1507.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>Synchronized focus sessions add a nice social accountability layer that solo Pomodoro apps usually lack. How does matching work \u2014 do you get grouped with strangers working on similar goals, or is it more for pre-formed groups\/friends?<\/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;Right now, there\u2019s no goal-based matching or private friend groups. Everyone joins the same global session at the scheduled start time &#8211; usually on the hour or half-hour &#8211; alongside whoever else is focusing then.<\/p>\n<p>I also don\u2019t want users spending time deciding which room or group to join. Their main task is to focus, so the social layer should require almost no setup.<\/p>\n<p>You can see the shared participant count and a lightweight view of what some people are working on, but everyone stays in the same shared rhythm. The idea is accountability without adding more decisions or distractions.<\/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 synced focus sessions are such a thoughtful touch, turning solo Pomodoros into something that actually feels shared. Love that the caf\u00e9 collection ties consistency to a tangible reward instead of just another streak counter.<\/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\/@hava3cfd\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hava3cfd<\/a>&nbsp;Thank you! That\u2019s exactly the feeling I was aiming for: enough shared presence to make focusing feel less lonely, without adding the distractions of a social network.<\/p>\n<p>And yes, the caf\u00e9s are meant to turn consistency into something you can actually collect and look back on, together with your focus stats from each week.<\/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>Is it something like a tracker where you can see other peers or? <\/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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;It\u2019s more like a shared focus room than a peer tracker. You track your own tasks, sessions, and progress, while Global mode shows how many other people are focusing at the same time.<\/p>\n<p>There\u2019s no chat or social feed to distract you, the idea is simply to make a solo session feel like you\u2019re working alongside others.<\/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 synchronized-session angle is smart because most Pomodoro apps optimize solo discipline, not the show-up-with-others part. I would be curious to see a lightweight post-session recap that separates planned focus time from completed rounds, so the social energy helps accountability without turning the app into another streak-pressure machine.<\/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\/@sergbmw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sergbmw<\/a>&nbsp;That\u2019s a really good distinction. Right now, the recap focuses mostly on what was completed, but showing planned focus time alongside completed rounds could make it feel more honest and useful.<\/p>\n<p>I especially like that it adds accountability without punishing people for breaking a streak. I\u2019m adding this idea to the post-session recap list.<\/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>Grindoro makes the social Pomodoro idea feel more concrete than just \u201cstudy with friends.\u201d Starting everyone on the hour or half-hour is a nice constraint because it gives the session a shared rhythm instead of becoming another solo timer.<\/p>\n<p>The weekly caf\u00e9s mechanic is the part I\u2019d want to try. Are caf\u00e9s mostly collectible proof of consistency, or do they change how people match into sessions and build routines over time?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;Thanks! That shared rhythm is exactly what I wanted the fixed start times to create.<\/p>\n<p>Right now, caf\u00e9s are mostly collectible proof of consistency. Each week has a new caf\u00e9, and completing at least one focus session during that week adds it to your seasonal passport.<\/p>\n<p>Each caf\u00e9 also keeps a snapshot of that week: focused time, sessions, visits, and cups used. You can swipe through the caf\u00e9 carousel later and look back at both the places you collected and your progress during each week.<\/p>\n<p>They don\u2019t currently affect session matching. Everyone still joins the same shared focus rhythm, while caf\u00e9s add a longer-term reason to return each week. I\u2019m curious whether caf\u00e9s shaping smaller groups or shared routines would make the mechanic more interesting to you.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2983a9bc-87cf-4a55-bed8-fffe67bafdc2.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>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\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/TQG7IJMI7F4BZO\" class=\"app-title\">Redential<\/a><\/p>\n<div class=\"one-liner\">A developer credential that proves what you built, NDA safe.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">124<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Redential\u901a\u8fc7\u672c\u5730\u626b\u63cfGit\u5386\u53f2\u751f\u6210\u53ef\u9a8c\u8bc1\u7684\u5f00\u53d1\u8005\u5c65\u5386\uff0c\u5e76\u652f\u6301\u5b9e\u65f6\u7b54\u8fa9\uff0c\u89e3\u51b3NDA\u4e0b\u5de5\u4f5c\u7ecf\u9a8c\u65e0\u6cd5\u53ef\u4fe1\u8bc1\u660e\u7684\u62db\u8058\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\/93b16571-f9c5-4e24-aea7-093d2ea3b2c2.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\/717e4ab2-2f9c-4a85-aa28-805773e68f32.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\/4f5b4f91-e780-4e92-856a-a425365fc6aa.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\/ce40d9f8-e608-4d44-8e94-7b2ff332cc4b.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\/270674b6-fb6d-46f6-929e-12891a507451.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/q8ZXjB4HpEs\"><source src=\"https:\/\/youtu.be\/q8ZXjB4HpEs\" 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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Career<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u53ef\u4fe1\u5c65\u5386<\/span><br \/>\n            <span class=\"tag\">Git\u5386\u53f2\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">NDA\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u6280\u672f\u62db\u8058<\/span><br \/>\n            <span class=\"tag\">\u6280\u80fd\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90CLI<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u7b54\u8fa9<\/span><br \/>\n            <span class=\"tag\">\u9632\u4f2a\u51ed\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u4eba\u624d\u7b5b\u9009<\/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\u9632\u4f2a\u673a\u5236\uff08\u5982\u53cd\u5bf9\u624b\u9009\u63d0\u4ea4\uff09\u3001\u79c1\u4eba\u4ed3\u5e93\u5408\u89c4\u6027\u3001\u4f01\u4e1aIT\u9650\u5236\u3001\u6324\u538b\/\u53d8\u57fa\u5386\u53f2\u7684\u5f71\u54cd\u3001\u4f5c\u8005\u90ae\u7bb1\u9519\u8bef\u5f52\u5c5e\u3001\u4ee5\u53caLLM\u63d0\u95ee\u6df1\u5ea6\u4e0d\u8db3\u53ef\u80fd\u88ab\u7cca\u5f04\u7684\u98ce\u9669\u3002\u5efa\u8bae\u589e\u52a0\u6309\u89d2\u8272\u5c55\u793a\u6700\u76f8\u5173\u5de5\u4f5c\u7684\u6f14\u793a\u529f\u80fd\uff0c\u5e76\u5f3a\u8c03\u7eaf\u672c\u5730\u626b\u63cf\u5bf9\u5408\u89c4\u573a\u666f\u7684\u5929\u7136\u4f18\u52bf\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                Redential\u7cbe\u51c6\u5207\u4e2d\u4e86\u6280\u672f\u62db\u8058\u4e2d\u201c\u7b80\u5386\u53ef\u4fe1\u5ea6\u5d29\u574f\u201d\u4e0e\u201cNDA\u4e0b\u9690\u5f62\u8d21\u732e\u65e0\u6cd5\u91cf\u5316\u201d\u7684\u53cc\u91cd\u6b7b\u7a74\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u626b\u63cfGit\u5386\u53f2\u2014\u2014\u8fd9\u4ec5\u662f\u57fa\u7840\u6570\u636e\u5c42\u2014\u2014\u800c\u5728\u4e8e\u201c\u672c\u5730\u626b\u63cf+\u5b9e\u65f6\u7b54\u8fa9\u201d\u6784\u5efa\u7684\u4fe1\u4efb\u95ed\u73af\uff1a\u672c\u5730\u626b\u63cf\u964d\u4f4e\u4f2a\u9020\u95e8\u69db\uff08\u4f46\u65e0\u6cd5\u6839\u9664\uff09\uff0c\u7b54\u8fa9\u5219\u7528\u8ba4\u77e5\u62f7\u95ee\u7b5b\u9009\u51fa\u771f\u6b63\u7406\u89e3\u4ee3\u7801\u7684\u4eba\u3002\u8fd9\u79cd\u8bbe\u8ba1\u806a\u660e\u5730\u7ed5\u5f00\u4e86\u4ee3\u7801\u6cc4\u9732\u98ce\u9669\uff0c\u5374\u5e26\u6765\u4e86\u65b0\u7684\u535a\u5f08\u2014\u2014\u9020\u5047\u8005\u53ea\u9700\u4f2a\u9020\u5386\u53f2\u5e76\u80cc\u719f\u5267\u672c\uff0c\u800c\u8d44\u6df1\u5f00\u53d1\u8005\u56e0\u8bb0\u5fc6\u8870\u51cf\u53cd\u800c\u53ef\u80fd\u5728\u7b54\u8fa9\u4e2d\u5403\u4e8f\uff08\u7528\u6237\u5df2\u7cbe\u51c6\u6307\u51fa\uff09\u3002\u4ea7\u54c1\u76ee\u524d\u505c\u7559\u5728\u201c\u63d0\u9ad8\u9020\u5047\u6210\u672c\u201d\u800c\u975e\u201c\u675c\u7edd\u9020\u5047\u201d\u7684\u52a1\u5b9e\u9636\u6bb5\uff0c\u4f46\u82e5\u63d0\u95ee\u5f15\u64ce\u4ec5\u4f9d\u8d56\u5143\u6570\u636e\u751f\u6210\u6cdb\u6cdb\u67b6\u6784\u95ee\u9898\uff0c\u5176\u6548\u5ea6\u5c06\u8fc5\u901f\u88ab\u5e02\u573a\u9a6f\u5316\u3002\u66f4\u81f4\u547d\u7684\u9690\u60a3\u662f\uff1a\u5b83\u6392\u65a5\u201c\u624b\u9009\u63d0\u4ea4\u201d\u8fd9\u79cd\u53cd\u9020\u5047\u8bbe\u8ba1\uff0c\u53cd\u800c\u53ef\u80fd\u8ba9\u62e5\u6709\u5927\u91cf\u4e2a\u4eba\u9879\u76ee\u7684Junior\uff0c\u6bd4\u5728\u5355\u4e00\u4f01\u4e1a\u6df1\u8015NDA\u9879\u76ee\u7684Senior\u83b7\u5f97\u66f4\u5149\u9c9c\u7684Profile\u3002\u6b64\u5916\uff0c\u56e2\u961f\u4fa7API\u7684\u201c\u65e0\u5ba1\u6838\u6743\u201d\u8bbe\u8ba1\uff0c\u672c\u8d28\u5c06\u8d23\u4efb\u5168\u90e8\u5916\u5305\u7ed9\u9762\u8bd5\u5b98\uff0c\u5bf9\u7528\u4eba\u5355\u4f4d\u800c\u8a00\uff0c\u8fd9\u4f9d\u7136\u662f\u4e00\u4e2a\u201c\u8f85\u52a9\u5224\u65ad\u5de5\u5177\u201d\uff0c\u800c\u975e\u201c\u80cc\u8c03\u66ff\u4ee3\u54c1\u201d\u3002\u4f5c\u4e3a\u62db\u8058\u94fe\u6761\u4e2d\u7684\u4e2d\u95f4\u4ef6\uff0cRedential\u7684\u5546\u4e1a\u5316\u80fd\u5426\u8dd1\u901a\uff0c\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u201c\u9632\u4f2a\u627f\u8bfa\u201d\u548c\u201c\u7528\u6237\u4f53\u9a8c\u201d\u4e4b\u95f4\u627e\u5230\u4e0d\u727a\u7272\u53ef\u4fe1\u5ea6\u7684\u5e73\u8861\u70b9\uff0c\u4ee5\u53ca\u662f\u5426\u613f\u610f\u63a5\u5165\u66f4\u591a\u5982\u4ee3\u7801\u5ba1\u8ba1\u65e5\u5fd7\u3001AI\u8f85\u52a9\u63d0\u95ee\u53ef\u4fe1\u5ea6\u8bc4\u5206\u7b49\u6297\u535a\u5f08\u5c42\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\">Redential<\/span>\n                <\/div>\n<div class=\"comment-content\">Your best work is probably under an NDA, so nobody can see it. Nobody trusts CVs anymore, they are so fakeable. Redential reads your git history on your own machine and turns it into a profile of what you actually built. Never your code, and you see exactly what gets shared before it does. Then you defend it live, answering questions about your own work. The result: a credential recruiters can trust more than a CV. The CLI is free and open source.<\/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 Juan, founder of Redential.<\/p>\n<p>Here&#8217;s the problem that made me build this: Nowadays a CV can be faked and polished, a github can be cloned, none of it shows anyone that you really know how to do the job.<\/p>\n<p>So the question became: what can&#8217;t be faked? The answer: work you actually did and the memory of doing it.<\/p>\n<p>Here&#8217;s how Redential works:<\/p>\n<p>\ud83d\udd0d Scan your work, locally (Open Source CLI).<br \/>Run &#8216;npx redential scan&#8217; on any repo, no account needed. It reads your git history on your own machine and detects what you actually built with: not just &#8220;Stripe is installed&#8221;, but real patterns, like a webhook flow with signature checks and duplicate-payment protection, connected.<\/p>\n<p>You can also connect the github app to your repos if you don&#8217;t choose the CLI path.<\/p>\n<p>\ud83d\udd12 Your code never leaves your machine<br \/>Only a small summary does: languages, activity, skills, and you see the exact data before anything uploads. This isn&#8217;t a promise: the privacy rules are tests inside the open source repo, and you can run them yourself.<\/p>\n<p>\ud83e\udeaa Get a public profile<br \/>Your work becomes a credential you can share with recruiters: what you built, with what, for how long. Even the work nobody was allowed to see.<\/p>\n<p>\ud83c\udfa4 Defend it live<br \/>This is the part that&#8217;s hard to fake. You answer questions about your own work, in real time, generated from your own history. If you did the work, you remember it. If you copied a history, you don&#8217;t.<\/p>\n<p>\u2696\ufe0f Honest by design<br \/>Anything from your own machine can be faked \u2014 so we label that evidence as exactly what it is, and never call it verified until it&#8217;s defended. No inflated claims, ever.<\/p>\n<p>Getting started is free: scan your repos, build your public profile, and run your first live defense. For teams that hire, there&#8217;s a dashboard and API to request and review defended profiles. Want it for your team? Book a call: <a href=\"https:\/\/cal.com\/juan-redential\/30min\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/cal.com\/juan-redential\/3&#8230;<\/a><\/p>\n<p>The CLI is fully open source: <a href=\"https:\/\/github.com\/redential\/redential-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/redential\/redential-cli<\/a> &#8211; if you&#8217;re technical and you can break the trust model, that&#8217;s the feedback I want most. I want more contributors to help me improve the evidence and make a stronger credential.<\/p>\n<p>\ud83d\udc49 Try it now: npx redential scan or redential.com<\/p>\n<p>Thanks for reading, excited to hear what you think! \ud83d\ude4c<\/p>\n<p>Juan<\/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>Congrats on the launch!!<\/p>\n<\/p>\n<p>Verification is the interesting part here. How do you prove someone actually built what they claim without access to private repos?<\/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>The proof happens on the dev&#8217;s own machine: the open-source CLI reads the git history right where it lives and turns it into metadata (skills, activity, time spans, never code). Then they defend that work live, answering questions about their own decisions. So the claim gets tested without the repo ever going anywhere.<\/p>\n<\/p>\n<p>Btw if you ever feel like helping us harden the evidence, the CLI is open source, happy to have you there: <a href=\"http:\/\/github.com\/Redential\/redential-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">github.com\/Redential\/redential-cli<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a really clever approach to the trust problem in hiring. One thing that would make it even more useful would be letting users pick which repos or specific commits get included, since someone might have a dozen personal projects but want to lead with their most relevant work for a specific role.<\/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\/@kaplaneylu22927\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kaplaneylu22927<\/a>&nbsp;Hey eylul! So today it&#8217;s repo by repo: nothing enters your profile unless you scan and submit that repo, so you already control what&#8217;s in. <\/p>\n<\/p>\n<p>We stopped there on purpose though: the moment evidence can be hand-picked commit by commit, it stops being evidence and turns back into a curated portfolio, which is kinda the problem we&#8217;re replacing. <\/p>\n<\/p>\n<p>Curious about your use case though: is it more about hiding noise, or highlighting the most relevant work for a role? Because the second one is a presentation feature we could build without touching the evidence, and tbh it&#8217;s a good idea.<\/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 hits close to home \u2014 I&#8217;m self-taught and just launched my first product today. My git history is basically the only proof I have that I actually learned to build something real, since I don&#8217;t have a traditional resume line to point to. Turning that into something shareable is such an obvious-in-hindsight idea. Congrats on the launch!<\/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\/@luyuan_liu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@luyuan_liu<\/a>&nbsp;This is exactly who we built it for tbh. Self-taught devs have the strongest proof there is (the work itself) and nowhere to point to it. Run npx redential scan on your repo, takes a minute, no account needed, and you&#8217;ll see what your history says about you. And congrats on YOUR launch today, big day for both of us!<\/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>reading git history instead of asking people to write a portfolio is a genuinely good idea, most portfolios are curated fiction anyway. the &#8220;defend it live&#8221; step is what sells it for me &#8211; that&#8217;s the part that actually separates someone who understands their own commits from someone who just merged a PR someone else wrote.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp; Thanks Omri! Really appreciate it. The defense is where we&#8217;re putting most of the work, first one is free if you want to try it on your own repo.<\/p>\n<p>If you want to contribute to our open source  <a href=\"https:\/\/github.com\/Redential\/redential-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">repo<\/a>, happy to have you there!<\/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 really interesting approach to the problem. How (if at all) can you prove past work after leaving a company and losing access to its code? Also, can employers view shared profiles freely?<\/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\/@mateuszkonik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mateuszkonik<\/a>&nbsp;Timing matters tbh: the CLI reads local git history, so the move is to scan while you still legitimately have the repo on your machine (most devs scan before wrapping up a job). <\/p>\n<\/p>\n<p>Once you&#8217;ve lost all access there&#8217;s nothing local to read, we can&#8217;t conjure evidence from nothing. What you keep forever is the credential you built while you had it: the bundle lives on your profile, not in their repo.<\/p>\n<\/p>\n<p>And yes, sharing is the whole point: your profile is a link, anyone you send it to can open it, no account needed on their side.<\/p>\n<\/p>\n<p>Actually you just gave me an idea: I opened an <a href=\"https:\/\/github.com\/Redential\/redential-cli\/issues\/31\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">issue<\/a> for this (&#8220;how do you preserve evidence before losing access?&#8221;) and see what the community comes up with. That&#8217;s how our best improvements happened so far.<\/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 local-scan-then-defend-live split is the right trust boundary here \u2014 self-reported evidence stays labeled unverified until you actually answer for it. Before trusting a profile though, how does the scan attribute authorship inside a repo where a chunk of the committed code isn&#8217;t yours: vendored deps, generated files, or co-authored\/pair commits? Curious whether those inflate the skills summary, or whether you filter to authored diffs before anything gets summarized and uploaded.<\/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\/@hi_i_am_mimo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hi_i_am_mimo<\/a>&nbsp;Yep, filtered before anything is summarized. Skills only attribute from lines YOU actually added: vendored deps, generated files and other contributors&#8217; code never enter the analysis (author filter + path exclusions, all public in the repo). Co-authored commits inherit git&#8217;s one-author-per-commit model, that&#8217;s the honest limit. And it&#8217;s all Attested-tier anyway: labeled claims, not verdicts.<\/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. The interesting part here is the defense step, not the scanning. Anyone can generate a skills list from commit metadata, and once that&#8217;s a market signal people will farm it. The live technical interview about your own code is the actual hard-to-fake bit, because you can&#8217;t defend architecture decisions you didn&#8217;t make.<\/p>\n<p>Which raises the question I&#8217;d want answered before signing up: who&#8217;s asking the questions, and how deep do they go? If it&#8217;s an LLM prompted from the repo summary, a good bluffer with a rough understanding of the codebase probably gets through, and the credential is worth roughly what a CV is. If it&#8217;s genuinely probing (&#8220;why did you pick exactly-once here instead of at-least-once with dedupe, and what broke when you didn&#8217;t&#8221;), that&#8217;s worth something.<\/p>\n<p>Also curious how you handle the ghostwriting problem now that a big chunk of shipped code is agent-written. The git history says it was committed under your name, not that you understood it. Maybe that&#8217;s fine and the defense catches it, but it seems like the main thing standing between this and a CV.<\/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\/@aidan_codefox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aidan_codefox<\/a>&nbsp;Depends on the evidence. From a CLI bundle the engine only sees metadata, so questions are architecture-level (why Redis, what breaks at 10x). From a connected repo it sees real files and mined fix history, so it gets specific, exactly your &#8220;why exactly-once here&#8221; type. <\/p>\n<\/p>\n<p>First question is deterministic from your detected capabilities; follow-ups are generated one at a time from the live transcript, so it drills into your last answer (capped at 3 levels per topic, server-side). Max 10 questions in 10 minutes, including one counterfactual that inverts a real fact from your history to catch people who agree with anything. Every positive verdict needs a literal quote from what you said, rules can only lower a verdict, and the model alone can never grant the top tier: Verified requires deterministic commit evidence. No human review today, that&#8217;s the honest state.<\/p>\n<\/p>\n<p>On ghostwriting: we think the axis moved. The question isn&#8217;t &#8220;did you type it&#8221; but &#8220;did you direct it and can you defend it&#8221;. The bundle carries honest agent-involvement signals, and the defense tests exactly the part a ghostwriter can&#8217;t sit for you.<\/p>\n<p>Thanks for the feedback btw happy to hear more<\/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\">@jpbelmo How does the CLI handle private repos with strict compliance rules, and is there any plan to support more platforms beyond GitHub?<\/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\/@tehreem_fatima5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tehreem_fatima5<\/a>&nbsp; The CLI is git-based, not GitHub-based: it reads local git history on your machine, so GitLab, Bitbucket and self-hosted repos already work. Only a small metadata summary you review ever leaves, no code, no file names, which is exactly the point for strict compliance setups. If you meant the sign-in or the connected-repo GitHub App, those are GitHub-first today with more planned. Which part did you have in mind?<\/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\">@jpbelmo Thanks for clarifying! I was mainly asking about the sign in and connected-repo integration side of things. Good to know more platform options are planned! Also, the metadata-only approach for local history gives great confidence for compliance.<\/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>What happens when you work in close enterprise git mostly and you are not allowed to install any unapproved apps. <\/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\/@shahrukh_khan39\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shahrukh_khan39<\/a>&nbsp; Tbh that&#8217;s a real constraint and I won&#8217;t tell you to sneak it past IT, that&#8217;s not our vibe. Good news imo: this is the easiest kind of tool to get approved. Nothing installs (npx runs it once), scan makes zero network calls, and it&#8217;s fully open source so your security team can literally read every line and run the privacy tests themselves. Btw a few folks have gotten it greenlit exactly that way, worth a quick ask to your sec team.<\/p>\n<p>You can check our open source repo <a href=\"https:\/\/github.com\/Redential\/redential-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">here<\/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\">The interesting tension here, git history proves a history, not that you&#8217;re the one who lived it. Someone could scan a repo they only reviewed, then still answer basic questions about it correctly if they read the PRs closely enough. The live defense narrows that gap but probably doesn&#8217;t close it for someone who prepped hard.<\/p>\n<p>More practical question: what happens with squashed\/rebased commits or a repo migrated from a different VCS? A lot of real production repos have messy or rewritten history curious if that shows up as &#8220;can&#8217;t verify&#8221; or if it just quietly produces a thinner profile.<\/p><\/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\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;Yeah, so local evidence can&#8217;t prove you lived it, so it&#8217;s our weakest tier and labeled that way. Two things help tho: scan only counts commits YOU authored (a reviewer scanning that repo gets a thin profile), and claimed emails get checked against your verified ones. The hard-prepper gap is real. Our bet: memorizing months of someone else&#8217;s decisions well enough to survive live follow-ups is almost as much work as doing the work. Narrows, doesn&#8217;t close. Honest state of it.<\/p>\n<\/p>\n<p>Squashed\/rebased repos: no &#8220;can&#8217;t verify&#8221; verdict, you just get a thinner profile (fewer commits, capabilities still detected from the diffs). And squash-merge workflows are explicitly documented as benign in the forensics, what looks bad is years of history committed in one sitting. Migrated repos land as weaker evidence, not invalid. It&#8217;s all in docs\/<a href=\"http:\/\/schema.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">schema.md<\/a> so if you wanna poke holes, best kind of contribution for us.<\/p>\n<p>One more thing: replayed histories usually leave every committer date clustered in one sitting even when author dates span years, and the bundle ships both spans. A careful forger can fake both dates though, git allows it. That&#8217;s exactly why local evidence is the weakest tier by design and the live defense sits on top. We never claim to detect all forgery, we claim to label what we can&#8217;t verify.<\/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>You asked for someone to try to break the trust model, so here is where I think it gives.<\/p>\n<p>The live defense is generated from the same history it is meant to validate. If I fabricate a history, the questions come from my fabrication, so I answer them easily, because I am the author of that fiction. Your line holds literally, if you did the work you remember it, but writing a convincing fake history is also work and I remember that too. The defense has no ground truth independent of the artifact under test.<\/p>\n<p>The second half is the part that hurts your actual users. Someone who genuinely shipped a payments integration three years ago under NDA has forgotten the specifics. Someone who generated a repo last night has them fresh. The test rewards recency, and the people it penalises are exactly the senior devs whose invisible work you built this to surface.<\/p>\n<p>Is question generation weighted by commit age, or does a 2019 repo get interrogated at the same depth as one from last month?<\/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\/@abdullah_javaid3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdullah_javaid3<\/a>&nbsp;You&#8217;re right: at the Attested tier there&#8217;s no ground truth outside the artifact, that&#8217;s why it&#8217;s the floor tier and labeled that way. What the CLI does is raise the price of the fake: signed commits can&#8217;t be backdated without your key, replayed histories leave a committer-date signature the bundle ships, and the structural signals need real connected code (a webhook flow that verifies, writes and dedupes across files), not plausible-looking commits. <\/p>\n<\/p>\n<p>Also the session throws you a counterfactual (inverts a real fact from your history) and drills into your own answers, so a fake has to stay coherent under pressure. At that point faking it is basically.. doing work.<\/p>\n<\/p>\n<p>You got us on the recency thing. Today a 2019 repo gets the same depth as last month&#8217;s. You basically wrote our next design issue. Wanna write it up for real? <a href=\"https:\/\/github.com\/Redential\/redential-cli\/issues\/28\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Issue #28<\/a> in the repo, that&#8217;s exactly the contribution we want most.<\/p>\n<p>Thanks for your 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping. You said the git-history trust model is what you want people to try to break, I got curious about the dashboard side instead: once a team requests a defended profile, is that visible only to the team that requested it, or could a different team account pull up someone else&#8217;s pending review before it goes public?<\/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\/@vollos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vollos<\/a>&nbsp;Thank you Chalermpon! So teams don&#8217;t request defended profiles, and there&#8217;s no pending review that later goes public. Devs defend their own work, and the only public thing is the dev&#8217;s profile, which the dev owns and shares.<\/p>\n<p>What teams get is an <a href=\"https:\/\/redential.com\/platform\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">API<\/a>: invite a candidate with a magic link, read the result of your own sessions only. Every API key belongs to one company and every read is filtered by it. Plus a private workspace to review your own candidates, with the defense audio and evidence behind each credential.<\/p>\n<p>So no, another team can&#8217;t pull up someone else&#8217;s pending review. There&#8217;s simply no shared pool to pull from.<\/p>\n<p>Happy to hear what you think, and if you like to chat just schedule <a href=\"https:\/\/cal.com\/juan-redential\/30min\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">here<\/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>coming at this as a CTO rather than a candidate: the &#8220;never your code, only a summary&#8221; pitch protects the code, but the summary itself can still be a leak. &#8220;webhook flow with signature checks and duplicate-payment protection, connected to auth via X&#8221; tells a competitor exactly how your payments system is architected, even with zero lines of code shown. that&#8217;s the kind of detail I&#8217;d actually care about in an NDA, not the literal source. does an employer get any say over what a former engineer&#8217;s scan surfaces about company repos, or is that entirely the individual&#8217;s call once they have local access to the history?<\/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;hey gal, thanks. one factual fix first: the bundle never says &#8220;connected to auth via X&#8221;, that example overshoots. What actually leaves is a closed-vocabulary slug (payments\/payment-webhook-flow) and that&#8217;s literally the whole disclosure. No architecture graph, no system connections, nothing. <\/p>\n<\/p>\n<p>So: the vocabulary IS the ceiling. it can only name industry-standard patterns (the taxonomy is public in the repo), so what gets out is &#8220;their front door has a lock&#8221; level stuff. Anything bespoke straight up can&#8217;t be expressed, there&#8217;s no slug for it, and adding one takes a public discussion plus schema ceremony. The leak surface is fixed and auditable, not open-ended.<\/p>\n<\/p>\n<p>On employer say: honest answer, nope. It&#8217;s the individual&#8217;s call, same as listing skills on a CV always has been, and the scan makes them confirm they&#8217;re authorized. the way we think about protecting the company side isn&#8217;t a veto, it&#8217;s the ceiling: the tool literally can&#8217;t surface more than CV-level facts. Does that cover what you&#8217;d actually worry about, or is there a case you&#8217;re seeing that I&#8217;m not?<\/p>\n<\/p>\n<p>Btw this is exactly the feedback that&#8217;s been shaping the product all week, keep it coming. And give the scan a try on any repo, takes a minute, no account: npx redential scan<\/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 failure mode I would want to know about is the committer email.<\/p>\n<\/p>\n<p>Mine is wrong. My global <a href=\"https:\/\/user.email\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">user.email<\/a> was a colleague&#8217;s address for a long stretch of work, so those commits are credited to his GitHub account and my own graph is empty for all of it. The work is real, it sits in the history, and every tool that reads git hands it to someone else.<\/p>\n<\/p>\n<p>That is the same gap you describe with NDA work, except self inflicted, and far more common than people admit.<\/p>\n<\/p>\n<p>Since Redential runs locally, it could be the one tool that gets this right. GitHub has to trust the email because all it ever sees is the push. You are reading repos I actually hold. So does attribution come from the commit email, in which case it inherits the same wrong answer, or from the fact that the repo is on my machine and I can prove I have it?<\/p>\n<\/p>\n<p>Asking because if it is the second, that is a stronger pitch than the NDA angle for a lot of people.<\/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\/@abdullah_javaid3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdullah_javaid3<\/a>&nbsp;Attribution is by author email. <\/p>\n<p>Possession can&#8217;t be identity: everyone who clones a repo &#8220;holds&#8221; it, so possession-based attribution would let anyone claim any history they can download. Your case is the painful flip side: from the outside, &#8220;my commits carry my colleague&#8217;s email&#8221; is indistinguishable from &#8220;I&#8217;m claiming my colleague&#8217;s commits&#8221;, and we refuse to guess. <\/p>\n<\/p>\n<p>So yes, today the CLI inherits git&#8217;s wrong answer for that stretch, same as every tool. The one thing we add: you can claim multiple emails that are YOURS (they get checked against your verified addresses), which covers the common multi-email mess, just not the someone-else&#8217;s-email one.<\/p>\n<\/p>\n<p>It&#8217;s a real gap and more common than people admit, like you said. If you&#8217;ve got ideas for an honest fix (colleague attestation? signed retro-claims?), that&#8217;s exactly the kind of thing <a href=\"https:\/\/github.com\/Redential\/redential-cli\/issues\/28\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">issue #28<\/a> exists 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Dev credential based on what you actually built is better signal than certifications tbh. GitHub activity shows some of this but not the full story. How do you verify the contribution is genuine?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Two paths today: the open-source CLI (for NDA work you can&#8217;t show) and the GitHub App for repos you can connect. The App gives stronger verification because we can read the actual code. The CLI earns a lower, clearly labeled tier because local evidence is forgeable by nature, and that&#8217;s exactly why it&#8217;s open source: so people can red-team it, and we actively invite that in the repo.<\/p>\n<p>The genuine check is the live defense: video and audio, recorded on your profile. Our AI generates questions from your real history (possible bugs, how you&#8217;d solve X, why you made this decision) and matches your answers against your commits. With a connected repo that matching is strong. With the CLI it&#8217;s harder, which is why it stays the lower tier and why we harden it in public.<\/p>\n<p>Before any of that, the basics: only commits YOU authored count, the emails you claim get checked against your verified addresses, signed commits can&#8217;t be backdated without your key, and replayed histories leave a date signature the bundle ships.<\/p>\n<p>Happy to have you as a contributor in our open source <a href=\"https:\/\/github.com\/Redential\/redential-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">repo<\/a><\/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<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\/3SP6KDCL2SNX6J\" class=\"app-title\">Overflight<\/a><\/p>\n<div class=\"one-liner\">Identify every aircraft in your sky.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">115<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Overflight \u662f\u4e00\u6b3e\u5c06 iPhone\/iPad \u4f5c\u4e3a\u968f\u8eab\u96f7\u8fbe\u3001Apple TV \u4f5c\u4e3a\u5e38\u4eae\u73af\u5883\u5c4f\u7684\u98de\u884c\u8bc6\u522b\u5de5\u5177\uff0c\u7cbe\u51c6\u89e3\u51b3\u201c\u5934\u9876\u98de\u8fc7\u7684\u662f\u4ec0\u4e48\u98de\u673a\u201d\u8fd9\u4e00\u5373\u65f6\u597d\u5947\u75db\u70b9\uff0c\u63d0\u4f9b\u5b9e\u65f6\u822a\u7ebf\u3001\u822a\u53f8\u3001\u9ad8\u5ea6\u53ca\u76ee\u89c6\u65b9\u5411\u6307\u5f15\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\/f979075e-aca9-40a6-acec-76c432ac9c92.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\/12415c3f-7b47-4e68-b9b5-679af38f6796.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\/efdd29cb-928a-4497-9751-45ddd5a5cbc2.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\/c0b571a6-6f73-4b35-96da-396d05822628.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\/109010f4-62f1-4a91-b1c4-90a88a352948.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\/1d679af9-d45c-4840-ab04-bb9bd9835364.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\">iOS<\/span><br \/>\n            <span class=\"tag\">Apple TV<\/span><br \/>\n            <span class=\"tag\">Travel<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u98de\u884c\u96f7\u8fbe<\/span><br \/>\n            <span class=\"tag\">\u98de\u673a\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u73af\u5883\u663e\u793a<\/span><br \/>\n            <span class=\"tag\">Apple TV<\/span><br \/>\n            <span class=\"tag\">\u5e38\u4eae\u5c4f<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u822a\u73ed\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u822a\u7a7a\u7231\u597d\u8005<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u589e\u5f3a\u73b0\u5b9e<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u4f17\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\u9ad8\u5ea6\u8ba4\u53ef Apple TV \u5e38\u4eae\u6a21\u5f0f\u4e0e iPhone \u5feb\u67e5\u573a\u666f\u7684\u5dee\u5f02\u5316\u8bbe\u8ba1\u3002\u90e8\u5206\u7528\u6237\u62c5\u5fe7 iPhone \u6307\u5357\u9488\u7cbe\u5ea6\u5f71\u54cd\u6307\u5411\u529f\u80fd\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u5df2\u878d\u5408\u9640\u87ba\u4eea\u4e0e\u52a0\u901f\u8ba1\u6570\u636e\u3002\u591a\u540d\u7528\u6237\u5efa\u8bae\u589e\u52a0 AR \u53e0\u52a0\u6a21\u5f0f\uff0c\u5e76\u8be2\u95ee Android \u7248\u672c\u8ba1\u5212\uff1b\u5f00\u53d1\u8005\u8868\u793a\u82e5 iOS \u6210\u529f\u5c06\u8003\u8651\u79fb\u690d\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                Overflight \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u529f\u80fd\u591a\u201d\uff0c\u800c\u5728\u4e8e\u201c\u573a\u666f\u51c6\u201d\u3002\u5b83\u7cbe\u51c6\u5207\u5272\u4e86\u98de\u884c\u8ffd\u8e2a\u5e02\u573a\u4e2d\u7684\u4e24\u4e2a\u6781\u7aef\u9700\u6c42\uff1a\u4e00\u662f\u201c\u62ff\u8d77\u5c31\u653e\u4e0b\u201d\u7684\u77ac\u65f6\u67e5\u8bc1\uff08iPhone\uff09\uff0c\u4e8c\u662f\u201c\u5f00\u542f\u5c31\u5fd8\u8bb0\u201d\u7684\u73af\u5883\u6c89\u6d78\uff08Apple TV\uff09\u3002\u8fd9\u79cd\u57fa\u4e8e\u8bbe\u5907\u5f62\u6001\u7684\u4f53\u9a8c\u5206\u5c42\uff0c\u6bd4\u5927\u591a\u6570\u591a\u7aef\u540c\u6b65\u5e94\u7528\u66f4\u61c2\u7528\u6237\u5b9e\u9645\u884c\u4e3a\u2014\u2014iPhone \u4f1a\u8bdd\u5e73\u5747\u4e0d\u5230\u4e00\u5206\u949f\uff0cApple TV \u5374\u957f\u8fbe\u534a\u5c0f\u65f6\uff0c\u6570\u636e\u672c\u8eab\u5df2\u7ecf\u8bc1\u660e\u201c\u5bf9\u7684\u8bbe\u5907\u7ed9\u5bf9\u7684\u529f\u80fd\u201d\u6bd4\u201c\u5168\u5e73\u53f0\u529f\u80fd\u4e00\u81f4\u201d\u66f4\u91cd\u8981\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u5546\u4e1a\u5316\u8def\u5f84\u3002\u4ed8\u8d39\u70b9\uff08Pro\uff09\u51e0\u4e4e\u5168\u90e8\u96c6\u4e2d\u4e8e Apple TV \u573a\u666f\uff08\u822a\u7ebf\u3001\u8bed\u97f3\u64ad\u62a5\u3001\u5e38\u4eae\u6a21\u5f0f\u3001\u519b\u4e8b\u98de\u673a\u63d0\u9192\uff09\uff0c\u800c iPhone \u5feb\u67e5\u4f5c\u4e3a\u514d\u8d39\u5165\u53e3\u57f9\u517b\u4e60\u60ef\u3002\u6b63\u5982\u8bc4\u8bba\u8005\u6240\u8a00\uff0c\u201c\u5bb9\u6613\u4ed8\u8d39\u7684\u5c4f\u5e55\uff08iPhone\uff09\u4e0d\u5e38\u9a7b\uff0c\u5e38\u9a7b\u7684\u5c4f\u5e55\uff08Apple TV\uff09\u624d\u662f\u4ed8\u8d39\u52a8\u673a\u5f62\u6210\u7684\u5730\u65b9\u201d\u2014\u2014\u5f00\u53d1\u8005\u65e0\u9700\u5728\u5feb\u67e5\u73af\u8282\u6253\u6270\u7528\u6237\uff0c\u800c\u662f\u8ba9\u7528\u6237\u5728\u9ad8\u9891\u6c89\u6d78\u611f\u7684 TV \u5c4f\u4e0a\u81ea\u7136\u4ea7\u751f\u201c\u503c\u5f97\u5347\u7ea7\u201d\u7684\u5ff5\u5934\u3002\u8fd9\u79cd\u5c06\u610f\u56fe\u6355\u83b7\u4ece\u5165\u53e3\u8fc1\u79fb\u81f3\u6c89\u6d78\u573a\u666f\u7684\u8bbe\u8ba1\uff0c\u6bd4\u4f20\u7edf\u514d\u8d39\u8bd5\u7528\u5230\u8ba2\u9605\u8f6c\u5316\u66f4\u514b\u5236\u3001\u4e5f\u66f4\u6709\u6548\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0cAR \u53e0\u52a0\u5c42\u7684\u7f3a\u5931\u662f\u660e\u663e\u77ed\u677f\u3002\u5f53\u524d\u201c\u6307\u5411\u54ea\u91cc\u770b\u201d\u5b8c\u5168\u4f9d\u8d56\u4e8c\u7ef4\u5730\u56fe\u548c\u624b\u673a\u7f57\u76d8\uff0c\u5728\u57ce\u5e02\u697c\u5b87\u95f4\u7cbe\u5ea6\u6781\u6613\u5931\u6548\u3002\u82e5\u80fd\u5b9e\u73b0\u6444\u50cf\u5934\u5b9e\u65f6\u753b\u9762\u53e0\u52a0\u98de\u884c\u6807\u7b7e\uff0c\u5c06\u4ece\u201c\u5de5\u5177\u201d\u8dc3\u5347\u4e3a\u201c\u4f53\u9a8c\u201d\u3002\u6b64\u5916\uff0c\u4f5c\u4e3a\u5355\u4eba\u4f5c\u54c1\uff0c\u5176\u957f\u671f\u66f4\u65b0\u98ce\u9669\u4e0e\u56fd\u9645\u5316\uff08\u7279\u522b\u662f Android \u7f3a\u5e2d\uff09\u5c06\u6210\u4e3a\u6269\u5c55\u74f6\u9888\u3002\u603b\u4f53\u6765\u770b\uff0cOverflight \u662f\u4e00\u4e2a\u201c\u5c0f\u800c\u7f8e\u201d\u7684\u5178\u8303\uff1a\u5b83\u4e0d\u8bd5\u56fe\u8986\u76d6\u6240\u6709\u5929\u7a7a\uff0c\u53ea\u91ce\u5fc3\u52c3\u52c3\u5730\u63a5\u7ba1\u4f60\u5bb6\u95e8\u5934\u9876\u7684\u90a3\u4e00\u7247\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\">Overflight<\/span>\n                <\/div>\n<div class=\"comment-content\">A live radar scope of the sky above you. Every aircraft you can actually see, plotted, with airline, flight number, route, altitude, and which way to look. iPhone and iPad in your pocket, Apple TV as an always-on ambient display. Free, with Pro for routes.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey, PH, dev here. I&#8217;m Charlie Wood, and DGR Labs is my a one-person shop. You might remember me from Spanning Sync, Spanning Backup, or Numerous.<\/p>\n<p>Overflight started with a personal compulsion: when a plane flies over my house I have to know what it is. Like, always. But every flight tracker wants to show me a map of the whole country and I wanted the opposite: just my visible sky and details about the aircraft in it.<\/p>\n<p>During beta testing, the Apple TV version emerged as its own thing: an ambient, always-on instrument. iPhone sessions average under a minute. Apple TV sessions average around 30 minutes. Huh! I use them both all the time: the iPhone version to answer the &#8220;What&#8217;s that?&#8221; question, and the Apple TV version in my office to give me ambient awareness of my local airspace.<\/p>\n<p>The spoken traffic feature is IMO the hidden gem. Try it and see if you get hooked. Also try to &#8220;Precise location &amp; direction&#8221; feature on Apple TV. I think it&#8217;s pretty novel.<\/p>\n<p>The app is free, with a Pro tier for routes, spoken traffic, always-on mode, and &#8220;inbound interesting&#8221;, a special mode for incoming military aircraft.<\/p>\n<p>Lots more info at <a href=\"https:\/\/dgrlabs.co\/g\/id4orc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/dgrlabs.co\/g\/id4orc<\/a><\/p>\n<p>Let me know what you think.I&#8217;ll be around in the comments.<\/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>no mention of Android or a web version anywhere, is that international given the Apple TV ambient angle or just where bandwidth ran out first.<\/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\/@kyle_bennett6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kyle_bennett6<\/a>&nbsp; TBH, I apply the Willie Sutton rule. (When asked why he robbed banks, he replied, \u201cBecause that\u2019s where the money is.\u201d) \ud83d\ude42 If it becomes a hit on iOS\/tvOS I will look at an Android port, but until then it\u2019s tough to justify the development\/testing expense and complexity. <\/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>&#8220;inbound interesting&#8221; mode sounds like it could get concerning fast.<\/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\/@dustin_warren\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dustin_warren<\/a>&nbsp;Ha, yeah. But the truth is it\u2019s mostly military transports. Fighters typically don\u2019t advertise their location. <\/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 30 min avg Apple TV session vs under a minute on iPhone tells you everything about who this is for. one&#8217;s a quick lookup, other&#8217;s basically a screensaver you actually want on.<\/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\/@derek_julian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@derek_julian<\/a>&nbsp;I\u2019m not so sure\u2014I think it\u2019s just two different usage modes. I myself use the iPhone app many times daily, but only for a few seconds each time, and always to answer the question, \u201cWhat\u2019s that plane hear?\u201d But I also leave it running on the Apple TV in my office for hours at a 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the way it pulls live flight data and overlays direction-of-look on the map feels really polished, like the team actually thought about how a plane spotter holds their phone.<\/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>Love that it treats Apple TV as an always-on ambient display instead of just a second screen. Turning the TV into a living radar scope while you sit on the couch is such a thoughtful use of the form factor.<\/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\/@azizvwhr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@azizvwhr<\/a>&nbsp;Thanks! It\u2019s been really fun to work 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>This is one of those apps you dont think you need until you try it. Identifying planes overhead is surprisingly satisfying. Does it work in real time or is there a delay from the ADS-B data?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;There\u2019s a tiny bit of latency, but it\u2019s near-real-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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;which way to look&#8221; part depends entirely on phone compass accuracy, and phone compasses drift constantly especially near buildings or in a car. have you had to build in some kind of correction for that, or does it just trust the raw magnetometer reading? that seems like the thing that&#8217;d make people distrust the app fastest if it&#8217;s ever pointing you at the wrong patch of sky.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Fair concern. I use the iOS system heading as-is, but it\u2019s not just raw magnetometer data. CoreLocation combines the magnetometer with the gyro and accelerometer, which handles most short-term drift. If it becomes an issue, I could use the heading-accuracy estimate reported by iOS,  but no one (other than you) has reported trouble with it so far. Are you seeing heading accuracy issues? If so, what device are you using? Thanks for the 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>the always-on Apple TV mode is such a smart move, honestly feels like something out of a flight ops room but you know, in your living room. finally a use for that screen.<\/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\/@cemgmlcnehrtm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cemgmlcnehrtm<\/a>&nbsp;Thanks, that\u2019s the feel I was going 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The session split is not just two audiences. It puts your funnel and your engagement on opposite screens.<\/p>\n<p>Almost everything in Pro is Apple TV value. Always on, ambient routes, spoken traffic, inbound interesting. That is the surface with the thirty minute sessions, so it is where the reason to pay actually forms. But the sub minute iPhone session is the one where someone answers what is that and puts the phone away, and that is the surface where paying is easy. The screen that earns the upgrade is the awkward one to buy on, and the screen that is easy to buy on is the one nobody lingers in.<\/p>\n<p>Which makes the interesting move handing the moment off rather than trying to close it on the TV. Capture the intent while the ambient session is running, because that is when it exists, not eight seconds into the next lookup on the phone.<\/p>\n<p>Does the tvOS app take the purchase directly, or does it send people to the phone to finish 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abdullah_javaid3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdullah_javaid3<\/a>&nbsp;That split was observed during the beta when all features were available to all users. Yes, you can purchase directly thru the Apple TV interface\u2014no phone handoff required. Thanks for the comments!<\/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 Apple TV angle here. Turning local airspace into an ambient display feels way more natural than another big map you have to actively check.<\/p>\n<p>&#8220;inbound interesting&#8221; is hilarious and a little terrifying.<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;Interesting inbounds don\u2019t happen very often for most people, but when they do they\u2019re pretty exciting. (The spoken traffic voice announcing it is even excited. \ud83d\ude0a) thanks for the comments!<\/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 tried this on my iPad and the Apple TV ambient mode is genuinely cool, just watching planes drift across the living room screen while I work. Route info for transcontinental flights has been spot on so far.<\/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\/@koglu5218\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@koglu5218<\/a>&nbsp;Glad to hear you\u2019re liking it! I\u2019m curious: do you have spoken traffic turned on? I do that and then the volume down low. It\u2019s nice background noise while I work, and just the right amount of interesting. \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>Would love to see a simple AR overlay mode where you hold up your phone and it draws arrows right onto the sky pointing toward each plane&#8217;s actual position, basically mapping the radar data onto the camera view so you don&#8217;t have to figure out bearings from a 2D screen.<\/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\/@hafizekang6uei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hafizekang6uei<\/a>&nbsp;That would cool! I\u2019ll put that in the feature-request hopper. <\/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\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XVH6V4K7KY2B23\" class=\"app-title\">Lattics<\/a><\/p>\n<div class=\"one-liner\">Brain-like knowledge base with AI writing &#038; deep research<\/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>Lattics\u662f\u4e00\u6b3e\u5c06\u5361\u7247\u77e5\u8bc6\u5e93\u3001\u89c6\u89c9\u5316\u601d\u7ef4\u5bfc\u56fe\u4e0eAI\u5199\u4f5c\u6df1\u5ea6\u7ed3\u5408\u7684\u684c\u9762\u5e94\u7528\uff0c\u4e13\u4e3a\u5b66\u672f\u7814\u7a76\u3001\u8bba\u6587\u5199\u4f5c\u548c\u957f\u6587\u521b\u4f5c\u573a\u666f\u8bbe\u8ba1\uff0c\u89e3\u51b3\u7528\u6237\u5728\u5206\u6563\u5de5\u5177\u95f4\u53cd\u590d\u5207\u6362\u5bfc\u81f4\u601d\u8def\u65ad\u88c2\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\/29e79d50-2d12-43ce-afca-1f610f4e831f.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\/d3a96187-9446-4444-a6be-6632eac680e9.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\/5dce8269-cb33-4b33-a012-ffd74c1d7cae.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\/9599fecd-2ac1-4dbb-8826-28299f0c20fe.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\/e5c58a28-57cf-4cb3-b8c8-72f66ba20298.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\/bbfb0d42-3e49-49a8-afad-d979aed863d7.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\/7034fb87-cdd8-4654-aefc-ed838ded3ad7.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\/0354132a-6c30-4082-89e6-7c03108c56d4.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\/782675d4-7474-4ad9-bece-3a73240a193e.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=SsvbebAG5Ko\"><source src=\"https:\/\/www.youtube.com\/watch?v=SsvbebAG5Ko\" 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\">Writing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5b66\u672f\u8bba\u6587<\/span><br \/>\n            <span class=\"tag\">Zettelkasten<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u5f15\u6587\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u601d\u7ef4\u5bfc\u56fe<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u975e\u7ebf\u6027\u683c<\/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\u8d5e\u8d4f\u672c\u5730\u5b58\u50a8\u548cAI\u96c6\u6210\uff0c\u4f46\u8d28\u7591AI\u5904\u7406\u591a\u6587\u6863\u65f6\u80fd\u5426\u51c6\u786e\u5f52\u56e0\u6765\u6e90\uff1b\u5173\u6ce8AI\u64cd\u4f5c\uff08\u5982\u6539\u5199\u3001@\u63d0\u53ca\uff09\u662f\u5426\u4e3a\u4e91\u7aef\u5904\u7406\uff0c\u4ee5\u53ca\u80fd\u5426\u9009\u7528\u672c\u5730\u6a21\u578b\uff1b\u597d\u5947AI\u751f\u6210\u7684\u7b14\u8bb0\u80fd\u5426\u81ea\u52a8\u7eb3\u5165\u77e5\u8bc6\u56fe\u8c31\uff0c\u5e76\u8be2\u95eePDF\u7ffb\u8bd1\u662f\u5426\u4fdd\u7559\u539f\u7248\u5f0f\u53ca\u652f\u6301\u626b\u63cf\u9875\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                Lattics\u7684\u5b9a\u4f4d\u806a\u660e\u5730\u5361\u4f4d\u5728\u4e86\u201c\u4e25\u8083\u521b\u4f5c\u8005\u201d\u4e0e\u201c\u672c\u5730\u4f18\u5148\u201d\u7684\u4ea4\u53c9\u70b9\u4e0a\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u5355\u7eaf\u7684AI\u5199\u4f5c\u6216\u77e5\u8bc6\u7ba1\u7406\uff0c\u800c\u662f\u8bd5\u56fe\u89e3\u51b3\u8fd9\u4e24\u4e2a\u9886\u57df\u7ed3\u5408\u65f6\u6700\u68d8\u624b\u7684\u4e24\u4e2a\u95ee\u9898\uff1a\u5f52\u56e0\u4e0e\u9690\u79c1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u770b\uff0c\u7528\u6237\u7684\u62c5\u5fe7\u975e\u5e38\u7cbe\u51c6\u3002\u5f53\u901a\u8fc7\u201c@\u63d0\u53ca\u201d\u8ba9AI\u7efc\u5408\u591a\u7bc7\u6587\u6863\u65f6\uff0c\u5982\u679c\u7f3a\u4e4f\u6e05\u6670\u7684\u6765\u6e90\u6807\u6ce8\uff0c\u90a3\u6240\u8c13\u7684\u201c\u77e5\u8bc6\u7efc\u5408\u201d\u5c31\u53d8\u6210\u4e86AI\u7684\u201c\u4e0d\u8d1f\u8d23\u4efb\u7684\u9ed1\u7bb1\u64cd\u4f5c\u201d\uff0c\u5bf9\u5b66\u672f\u5de5\u4f5c\u7684\u98ce\u9669\u6781\u5927\u3002\u56e2\u961f\u76ee\u524d\u7684\u56de\u5e94\u201cAI\u589e\u5f3a\u81ea\u52a8\u5316\uff0c\u4f46\u4eba\u7c7b\u4fdd\u7559\u63a7\u5236\u201d\u7a0d\u663e\u6a21\u7cca\u3002\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\uff0c\u80fd\u5426\u5728AI\u8f93\u51fa\u65f6\uff0c\u5bf9\u6bcf\u4e00\u4e2a\u89c2\u70b9\u6216\u53e5\u5b50\u7684\u539f\u59cb\u51fa\u5904\u505a\u5230\u7cbe\u786e\u4e14\u53ef\u89c1\u7684\u5173\u8054\uff0c\u8ba9\u5199\u4f5c\u4e0d\u4ec5\u662f\u201c\u751f\u6210\u201d\uff0c\u66f4\u662f\u201c\u6eaf\u6e90\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u5173\u952e\u70b9\u662fAI\u7684\u90e8\u7f72\u3002Lattics\u652f\u6301Ollama\u7b49\u672c\u5730\u6a21\u578b\uff0c\u8fd9\u662f\u5b83\u76f8\u6bd4Notion AI\u7b49\u7ade\u54c1\u7684\u6740\u624b\u950f\u3002\u4f46\u201c\u652f\u6301\u201d\u4e0e\u201c\u597d\u7528\u201d\u4e4b\u95f4\u5dee\u8ddd\u5de8\u5927\u3002\u672c\u5730\u5c0f\u6a21\u578b\u5728\u7406\u89e3\u590d\u6742\u4e0a\u4e0b\u6587\u3001\u6267\u884c\u957f\u6587\u672c\u6539\u5199\u65f6\u7684\u8d28\u91cf\uff0c\u5f80\u5f80\u8fdc\u4e0d\u5982\u4e91\u7aef\u5927\u6a21\u578b\u3002\u5982\u679c\u7528\u6237\u4e3a\u4e86\u9690\u79c1\u5fc5\u987b\u5fcd\u53d7AI\u8d28\u91cf\u7684\u660e\u663e\u964d\u7ea7\uff0c\u90a3\u4e48\u8fd9\u4e2a\u201c\u652f\u6301\u201d\u5c31\u6ca6\u4e3a\u4e86\u8425\u9500\u5671\u5934\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u81f3\u4e8e\u201c\u8111\u72b6\u77e5\u8bc6\u5e93\u201d\uff0c\u76ee\u524d\u66f4\u591a\u662f\u624b\u52a8\u5efa\u8054\uff0cAI\u81ea\u52a8\u611f\u77e5\u548c\u63d2\u5165\u4ecd\u662f\u201c\u4e0b\u4e00\u6b65\u201d\u8ba1\u5212\u3002\u8fd9\u610f\u5473\u7740\u5176\u77e5\u8bc6\u56fe\u8c31\u7684\u667a\u80fd\u7a0b\u5ea6\u76ee\u524d\u8fd8\u5f88\u521d\u7ea7\uff0c\u8fdc\u672a\u8fbe\u5230\u201c\u7cfb\u7edf\u81ea\u52a8\u751f\u957f\u201d\u7684\u7406\u60f3\u72b6\u6001\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cLattics\u662f\u4e00\u4e2a\u601d\u8def\u6e05\u6670\u3001\u5b9a\u4f4d\u6210\u529f\u7684\u4ea7\u54c1\uff0c\u4f46\u76ee\u524d\u66f4\u50cf\u662f\u4e00\u4e2a\u201c\u672c\u5730\u4f18\u5148\u7684\u3001\u5e26AI\u529f\u80fd\u7684\u5f3a\u5927\u7b14\u8bb0\u4e0e\u5199\u4f5c\u5de5\u5177\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u771f\u6b63\u7684\u201c\u8111\u72b6AI\u5199\u4f5c\u7cfb\u7edf\u201d\u3002\u5b83\u5728AI\u4e0e\u77e5\u8bc6\u7ba1\u7406\u7684\u878d\u5408\u6df1\u5ea6\u4e0a\uff0c\u5c24\u5176\u662f\u5f52\u56e0\u548c\u81ea\u52a8\u8054\u7ed3\u5c42\u9762\uff0c\u8fd8\u6709\u5f88\u957f\u7684\u8def\u8981\u8d70\u3002\u8bf4\u201c\u91cd\u65b0\u5b9a\u4e49\u5199\u4f5c\u201d\u4e3a\u65f6\u5c1a\u65e9\uff0c\u4f46\u5b83\u786e\u5b9e\u4e3a\u4e25\u8083\u5199\u4f5c\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u503c\u5f97\u5173\u6ce8\u7684\u3001\u66f4\u5e72\u51c0\u7684\u8d77\u70b9\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\">Lattics<\/span>\n                <\/div>\n<div class=\"comment-content\">Three years ago, we launched Lattics as a &#8220;brain-like&#8221; knowledge management tool for writers and researchers. Today, we&#8217;re back with something much bigger \u2014 AI-assisted writing that&#8217;s deeply integrated into your research and creative workflow. *** 30% OFF DISCOUNT for Produnct Hunt, Limited for 50 *** Please check the discount code in the link :https:\/\/lattics.com\/specialoffer\/7fGKwQZEhV, You will get 30% discount code of Lattics Pro<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Lattics is a desktop writing app (Mac + Windows) designed for academic research, thesis writing, analytical reports, and creative writing. It combines a card-based knowledge base (Zettelkasten), visual mind maps &amp; timelines, professional citation management (8000+ CSL styles), interactive charts, and PDF translation \u2014 all with privacy-first local storage.                                                                                        <\/p>\n<p> ### \u2728 What&#8217;s New \u2014 AI Assistance<br \/>\n 1. AI Writing Tool (Right-click)<br \/>\n Select any text and right-click to access AI actions: translate, proofread, rewrite, continue writing, or start a  conversation about the content. No switching contexts.                                                              <\/p>\n<p> 2. Collaborative AI Editing  \ud83c\udd95 Unique<br \/>\n AI-generated text is fully editable \u2014 you can modify it directly, add your own notes, and track changes with built-in version control. Unlike tools that treat AI output as final, Lattics lets you iterate.                     <\/p>\n<p> 3. Batch Processing with @ Mentions \ud83c\udd95 Unique<br \/>\n Type @ in AI Chat to mention multiple articles and ask the AI to analyze, summarize, or compare them together.  Cross-document intelligence, no copy-pasting.<\/p><\/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>The @ mention batch processing is the standout feature here, comparing sources without manual copy-paste is a real time-saver. But for academic work, that convenience carries a real risk: if the AI conflates or misattributes a point across multiple papers, that&#8217;s not just noise, it&#8217;s a citation error.<\/p>\n<p>How does Lattics handle attribution when synthesizing across documents? Does it flag which source each point actually came from, or is verifying that still on the writer?<\/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 local-first angle is the strongest part here. For research and thesis writing, having cards, timelines, citations, PDFs, and drafts in one desktop workspace sounds much better than bouncing between a notes app, reference manager, and chat window.<\/p>\n<p>The main thing I\u2019d want to understand is how the AI layer handles privacy. When using right-click rewrite or @ mentions across multiple articles, is that always sent to a cloud model, or can users choose what leaves the machine?<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;You can use Ollama or your own deployed model as AI provider, and only you choose content send to model, unless you authorize <a href=\"https:\/\/AI.to\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AI<\/a> acess some projects, but it is all under your control. <\/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>the privacy-first local storage plus AI writing combo is the part I&#8217;d want more detail on &#8211; the moment I right-click and ask for a rewrite or start an AI chat, that selection has to leave the machine to reach whatever model is doing the work, right? curious whether that&#8217;s opt-in per action, and whether there&#8217;s ever a local\/offline model option for people who picked this specifically for the local-storage privacy angle in the first place.<\/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;You can use Ollama or your own deployment model as AI provider<\/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 how the AI writing layer plays with the brain-like graph structure over time &#8211; does it auto-link a new AI-drafted note into the right place in your existing knowledge graph, or do you still have to manually connect it after generating? that manual reconnection step is usually where these tools quietly turn back into a flat notes app once you&#8217;ve got a few hundred entries.<\/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 way lattics weaves AI directly into the research flow instead of bolting it on feels really thoughtful, like the team actually understood how writers get stuck before shipping anything. excited to dig into 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\/@tekelioglu84719\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tekelioglu84719<\/a>&nbsp;We welcome you to try Lattics and write a review. Here is a redemption code for a Lattics Pro monthly membership: fkHbk03usf, which can be redeemed at this link: <a href=\"https:\/\/lattics.com\/en-US\/reseller\/redeem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/lattics.com\/en-US\/reseller\/redeem<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;brain-like&#8221; framing is interesting \u2014 most knowledge-base tools are still fundamentally folders and tags with search bolted on. Curious how the underlying structure actually works: is it building real semantic connections between notes over time (more like a knowledge graph), or is &#8220;brain-like&#8221; more about the retrieval\/writing experience on top of a fairly standard store? That distinction matters a lot for how well it holds up as someone&#8217;s knowledge base grows into the thousands of 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abhineetarora\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhineetarora<\/a>&nbsp;Currently, users can create content non-linearly and visually, manually establishing connections between different parts. In the future, AI will enhance automation, but humans will still retain control.<\/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 Louis, that scattered feeling of jumping between a dozen windows is exactly what wrecks my focus when I settle into a long piece of writing. Bringing calm to that mess really appeals to me, and knowing my work stays on my own computer is a lovely bonus.<\/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;Yeah,  same fellings. I am the heavy user of Lattics,  5 years ago, we start design and develop it, based on our expectations for long-form and serious writing<\/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>Brain like knowledge base is a bold claim but the concept of non-linear note organization is genuinely useful. How does the AI writing side integrate with the knowledge graph, does it pull context automaticaly?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Integrate with knowledge graph is our next step, and will be context perception automatically <\/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 way Lattics pulls my scattered notes into a visual map while I draft has genuinely changed how I approach long projects. The AI suggestions feel tuned to what I&#8217;m actually working on, not generic fluff.<\/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 noticed the PDF translation feature. Does the translated version stay aligned with the original document layout? And can it also translate text inside images or scanned pages?<\/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\/@jerome2000\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jerome2000<\/a>&nbsp;Yes, It keeps the layout same as original docs, and include scanned pages<\/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\/67DGGDJ3OQF4VZ\" class=\"app-title\">Garmin CIRQA\u2122 Smart Band<\/a><\/p>\n<div class=\"one-liner\">The screenless health + fitness tracker with no subscription<\/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>Garmin CIRQA\u2122 Smart Band\u662f\u4e00\u6b3e\u65e0\u5c4f\u5e55\u7684\u5065\u5eb7\u4e0e\u5065\u8eab\u8ffd\u8e2a\u624b\u73af\uff0c\u901a\u8fc7\u81ea\u52a8\u6d3b\u52a8\u68c0\u6d4b\u4e0e\u957f\u8fbe10\u5929\u7eed\u822a\uff0c\u89e3\u51b3\u7528\u6237\u65e0\u9700\u9891\u7e41\u5145\u7535\u548c\u8ba2\u9605\u4ed8\u8d39\u5373\u53ef\u5168\u5929\u5019\u76d1\u6d4b\u5065\u5eb7\u72b6\u6001\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\/015b17ad-edbf-4394-937d-17adcf000918.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/as9grxJNylM?si=3M5BOyAhS2EPyHmd\"><source src=\"https:\/\/youtu.be\/as9grxJNylM?si=3M5BOyAhS2EPyHmd\" 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\/46785fb0-0639-45fe-8829-7d61565bb277.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\/d9ee05bd-6ed8-419c-b546-be8596b205f4.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\/bab529f7-aa7e-44fc-9ab1-1ce53b74f831.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\/48748da1-cfe6-4cdb-94ba-c7246f98d031.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\/d96c0a1a-9deb-48cb-9841-d42628943e37.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\/60bc501b-930c-45b0-81ba-0c1b85c8fea4.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\/7169177b-196b-4a3b-ae7c-b4c5a54fa64e.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\/ef0ee069-ecd6-44a3-a521-918e3a0fd632.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\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Wearables<\/span><br \/>\n            <span class=\"tag\">Fitness<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u65e0\u5c4f\u5e55\u667a\u80fd\u624b\u73af<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u5065\u8eab\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u6d3b\u52a8\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u538b\u529b\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u957f\u7eed\u822a<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605<\/span><br \/>\n            <span class=\"tag\">Garmin<\/span><br \/>\n            <span class=\"tag\">\u53ef\u7a7f\u6234\u8bbe\u5907<\/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\u65e0\u8ba2\u9605\u6a21\u5f0f\uff0c\u4f46\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u4e8e\uff1a\u65e0\u5c4f\u5e55\u4e0b\u6d3b\u52a8\u8bef\u68c0\u80fd\u5426\u5728App\u5185\u624b\u52a8\u4fee\u6b63\uff1f\u6709\u65e0\u632f\u52a8\u8b66\u62a5\u53cd\u9988\uff1f\u662f\u5426\u5f00\u653eAPI\uff1f\u7761\u7720\u8ffd\u8e2a\u7cbe\u5ea6\u5982\u4f55\uff1f\u5efa\u8bae\u589e\u52a0\u5b9e\u65f6\u9707\u52a8\u63d0\u9192\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                CIRQA\u2122\u5728\u6982\u5ff5\u4e0a\u7cbe\u51c6\u5207\u4e2d\u4e86\u53ef\u7a7f\u6234\u5e02\u573a\u7684\u4e24\u5927\u75db\u70b9\uff1a\u8ba2\u9605\u75b2\u52b3\u4e0e\u5c4f\u5e55\u5197\u4f59\u3002\u5728Oura\u3001Whoop\u7b49\u54c1\u724c\u5c06\u5065\u5eb7\u6570\u636e\u201c\u6309\u6708\u51fa\u79df\u201d\u7684\u5f53\u4e0b\uff0cGarmin\u51ed\u501f\u786c\u4ef6\u57fa\u56e0\u6253\u51fa\u201c\u65e0\u8ba2\u9605\u201d\u724c\uff0c\u7684\u786e\u662f\u4e00\u8bb0\u6709\u529b\u7684\u5dee\u5f02\u5316\u91cd\u62f3\u3002\u4f46\u65e0\u5c4f\u5e55\u8bbe\u8ba1\u662f\u4e00\u628a\u53cc\u5203\u5251\u2014\u2014\u5b83\u780d\u6389\u4e86\u7eed\u822a\u7126\u8651\u548c\u4ea4\u4e92\u6210\u672c\uff0c\u5374\u628a\u4fe1\u606f\u53cd\u9988\u7684\u201c\u6700\u540e10\u7c73\u201d\u63a8\u7ed9\u4e86\u624b\u673a\u3002\u4ece\u8bc4\u8bba\u53cd\u9988\u770b\uff0c\u7528\u6237\u771f\u6b63\u5173\u5fc3\u7684\u4e0d\u662f\u201c\u6709\u6ca1\u6709\u5c4f\u5e55\u201d\uff0c\u800c\u662f\u201c\u65e0\u5c4f\u4e0b\u80fd\u5426\u83b7\u5f97\u7b49\u6548\u7684\u5373\u65f6\u53cd\u9988\u201d\uff1a\u6d3b\u52a8\u8bef\u68c0\u80fd\u5426\u5728App\u5185\u4e8b\u540e\u4fee\u6b63\uff1f\u5fc3\u7387\u5f02\u5e38\u80fd\u5426\u9760\u632f\u52a8\u5373\u523b\u6253\u65ad\u7528\u6237\uff1f\u8fd9\u4e9b\u7ec6\u8282\u51b3\u5b9a\u4e86CIRQA\u662f\u201c\u6781\u7b80\u7684\u5065\u5eb7\u9ed1\u7bb1\u201d\u8fd8\u662f\u201c\u806a\u660e\u7684\u65e0\u58f0\u52a9\u7406\u201d\u3002Garmin\u5728\u4e13\u4e1a\u8fd0\u52a8\u4f20\u611f\u5668\u4e0a\u7684\u79ef\u7d2f\u662f\u5929\u7136\u62a4\u57ce\u6cb3\uff0c\u4f46\u82e5\u5c06\u81ea\u52a8\u68c0\u6d4b\u505a\u6210\u201c\u95f7\u58f0\u7b97\u6570\u201d\uff0c\u5e76\u5728\u4ea4\u4e92\u4e0a\u4ec5\u9760App\u5355\u5411\u8f93\u51fa\uff0c\u53cd\u800c\u53ef\u80fd\u653e\u5927\u7528\u6237\u7684\u4fe1\u566a\u6bd4\u7126\u8651\u3002\u771f\u6b63\u503c\u5f97\u671f\u5f85\u7684\uff0c\u4e0d\u662f\u53bb\u6389\u5c4f\u5e55\u672c\u8eab\uff0c\u800c\u662fGarmin\u80fd\u5426\u7528\u66f4\u806a\u6167\u7684\u7b97\u6cd5\u4e0e\u66f4\u7cbe\u7ec6\u7684\u89e6\u89c9\u53cd\u9988\uff0c\u8ba9\u201c\u65e0\u5c4f\u201d\u53d8\u6210\u4e00\u79cd\u66f4\u4e13\u6ce8\u7684\u4f53\u9a8c\u8fed\u4ee3\uff0c\u800c\u975e\u529f\u80fd\u7684\u59a5\u534f\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\">Garmin CIRQA\u2122 Smart Band<\/span>\n                <\/div>\n<div class=\"comment-content\">CIRQA\u2122 Smart Band is a screenless smart band that can automatically detect activities, has 24\/7 health monitoring, stress tracking, and up to 10 days of battery.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the screenless approach and the 10 day battery is genuinely impressive. One thing I&#8217;d love to see is a small vibration alert for irregular heart rate or high stress moments, so the health monitoring actually nudges you in the moment instead of just showing it in the app 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\">\n<p><a href=\"https:\/\/www.producthunt.com\/@boran4dda\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boran4dda<\/a>&nbsp;I love the idea of a small vibration alert for irregular heart rate or high stress moments. I hadn&#8217;t considered a screenless fitness tracker before, but a feature like that would make me consider 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>DOES IT HAVE API??!<\/p>\n<p>FINNALY!!!<\/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\/@sayyids\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sayyids<\/a>&nbsp;an API would be 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\">Automatic activity detection without a screen is the part I&#8217;d stress test hardest that&#8217;s usually where these bands quietly fall short. Garmin&#8217;s watches already do decent auto detect, but a lot of screenless bands either misclassify similar movements (cycling vs. spin bike, walking vs. light jog) or lag by several minutes before locking in the activity type. <\/p>\n<p>Since there&#8217;s no screen to glance at and correct it in real time, any misclassification just sits wrong in your data until you sync to the phone.<br \/>\nWould be curious if CIRQA lets you manually retag an activity after the fact from the app, or if you&#8217;re fully trusting the auto detection with no override that&#8217;s the trust question a screenless design lives or dies on.<\/p><\/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>No subscription for health tracking is really refreshing. Most wearable companies find ways to lock core features behind monthly fees. How accurate is the sleep tracking compared to full Garmin watches?<\/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 no-subscription model is the most interesting part here. Wearables have gotten weirdly expensive once the hardware turns into a monthly fee.<\/p>\n<p>For a screenless band, I\u2019d be curious how CIRQA handles feedback in the moment. If it auto-detects an activity wrong, can you retag it later in the app, or is the idea that the band gets accurate enough that users should not need manual correction?<\/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>no subscription is the headline that matters most here &#8211; Whoop and Oura basically both turned into monthly fees on top of hardware you already bought, so a Garmin-quality band that skips that is a real differentiator, not just marketing. curious how you handle the no-screen part in practice though &#8211; is checking your stats mid-workout purely a phone-app thing, or is there some minimal on-band feedback (vibration patterns, LED, anything) so you&#8217;re not pulling your phone out constantly.<\/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\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/FFPABZP7I4QPD3\" class=\"app-title\">AI Agents in Chat<\/a><\/p>\n<div class=\"one-liner\">Your Chat UI Just Got an AI Roommate<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">106<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CometChat \u7684 iOS UI Kit \u8ba9\u5f00\u53d1\u8005\u65e0\u9700\u4ece\u96f6\u6784\u5efa\u804a\u5929\u754c\u9762\uff0c\u5373\u53ef\u5728\u73b0\u6709\u5e94\u7528\u4e2d\u5d4c\u5165\u652f\u6301\u6d41\u5f0f\u54cd\u5e94\u3001\u5bf9\u8bdd\u5386\u53f2\u548c\u81ea\u5b9a\u4e49UI\u7684AI\u667a\u80fd\u4f53\uff0c\u89e3\u51b3\u201cAI\u597d\u505a\uff0c\u804a\u5929UI\u96be\u642d\u201d\u7684\u957f\u671f\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\/b63fd062-abcc-4f11-9173-d77c1fa1cbbf.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\/10ea7d87-587e-41b2-af8d-e6b0edc06dba.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\/5b3ad9a6-386c-4b34-b265-0d6cbaed14a2.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\/4fd0eaec-5b27-44c4-907a-21c75da6cd51.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\/eb9271bd-49cb-456d-83e1-4dfcd0d73124.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\">Messaging<\/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\">iOS UI Kit<\/span><br \/>\n            <span class=\"tag\">AI\u667a\u80fd\u4f53\u5d4c\u5165<\/span><br \/>\n            <span class=\"tag\">\u6d41\u5f0f\u804a\u5929<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5386\u53f2<\/span><br \/>\n            <span class=\"tag\">\u53ef\u5b9a\u5236UI<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d88\u606f\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u6210\u672c\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u7fa4\u804a\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a9\u90e8\u7f72<\/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\u6ce8AI\u5bf9\u8bdd\u6210\u672c\u63a7\u5236\u4e0e\u65ad\u7ebf\u6062\u590d\uff1b\u5efa\u8bae\u589e\u52a0\u5206\u652f\/\u7ebf\u7a0b\u8f6c\u5f55\u3001\u591a\u7528\u6237\u5171\u4eabAI\u7fa4\u804a\u5386\u53f2\u3001\u65e0\u4ee3\u7801Webhook\u8def\u7531\u3001\u539f\u751fSlack\/Teams\u8fc1\u79fb\u5de5\u5177\u3002\u53e6\u6709\u53cd\u9988\u5f3a\u8c03\u81ea\u5b9a\u4e49\u80fd\u529b\u3001\u5df2\u6709auth\/\u5386\u53f2\u7ee7\u627f\u3001\u8de8\u5e73\u53f0\u914d\u7f6e\u4e00\u81f4\u6027\uff0c\u5f00\u53d1\u56e2\u961f\u5bf9\u90e8\u5206\u5efa\u8bae\u8fdb\u884c\u4e86\u6df1\u5ea6\u56de\u5e94\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                CometChat \u8fd9\u6b21\u5207\u4e2d\u7684\u4e0d\u662f\u201cAI\u80fd\u529b\u201d\uff0c\u800c\u662f\u201cAI\u843d\u5730\u4e2d\u90a3\u4e2a\u6700\u65e0\u804a\u5374\u6700\u81f4\u547d\u7684\u73af\u8282\u2014\u2014\u804a\u5929UI\u6253\u78e8\u201d\u3002\u5728AI Agent\u4ea7\u54c1\u624e\u5806\u5377\u6a21\u578b\u3001\u5377\u63a8\u7406\u7684\u5f53\u4e0b\uff0c\u5b83\u6e05\u9192\u5730\u610f\u8bc6\u5230\uff1a\u4f01\u4e1a\u7528\u6237\u7f3a\u7684\u4e0d\u662f\u4e00\u4e2a\u806a\u660e\u7684\u5927\u8111\uff0c\u800c\u662f\u4e00\u4e2a\u80fd\u76f4\u63a5\u585e\u8fdb\u73b0\u6709\u5e94\u7528\u3001\u4e0d\u7834\u574f\u5df2\u6709\u4f53\u9a8c\u3001\u5f00\u7bb1\u5373\u7528\u7684\u201c\u804a\u5929\u58f3\u201d\u3002\u8fd9\u4e2a\u5b9a\u4f4d\u65e2\u52a1\u5b9e\u53c8\u950b\u5229\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u7528\u6237\u53cd\u9988\u4e5f\u80fd\u770b\u5230\uff0c\u771f\u6b63\u6df1\u5165\u4e00\u7ebf\u5f00\u53d1\u7684\u5de5\u7a0b\u5e08\u4e0d\u4f1a\u7ea0\u7ed3AI\u591a\u667a\u80fd\uff0c\u800c\u662f\u5173\u5fc3\u201c\u65ad\u7ebf\u540e\u6d88\u606f\u600e\u4e48\u6062\u590d\u201d\u201ctoken\u6210\u672c\u8c01\u6765\u7ba1\u201d\u201c\u7fa4\u804a\u91ccAgent\u600e\u4e48\u4ea4\u63a5\u201d\u2014\u2014\u8fd9\u4e9b\u90fd\u662f\u4ea7\u54c1\u80fd\u5426\u4eceDemo\u8d70\u5230\u751f\u4ea7\u73af\u5883\u7684\u5173\u952e\u95e8\u574e\u3002CometChat \u5728\u56de\u590d\u4e2d\u5c55\u73b0\u4e86\u8db3\u591f\u7684\u6210\u719f\u5ea6\uff1a\u5355\u5411\u5bf9\u8bdd\u5df2\u5b8c\u5907\uff0c\u4f46\u6210\u672c\u63a7\u5236\u3001\u7fa4\u804aAgent\u4e0a\u4e0b\u6587\u5171\u4eab\u3001\u8de8\u5e73\u53f0\u4e00\u81f4\u6027\u7b49\u95ee\u9898\u5c1a\u672a\u6709\u660e\u786e\u8def\u7ebf\u56fe\uff0c\u8fd9\u4e9b\u662f\u672a\u6765\u53ef\u80fd\u88ab\u5bf9\u624b\u53cd\u8d85\u7684\u8584\u5f31\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ea7\u54c1\u76ee\u524d\u4ec5\u4e3b\u6253iOS UI Kit\uff0cWeb\u548cAndroid\u4ecd\u5c5e\u8ba1\u5212\u5185\u800c\u975e\u5df2\u5c31\u7eea\uff0c\u8fd9\u9650\u5236\u4e86\u5b83\u5728\u591a\u7aef\u5e94\u7528\u573a\u666f\u4e0b\u7684\u5373\u65f6\u5438\u5f15\u529b\u3002\u6b63\u9762\u770b\uff0c\u5b83\u7684\u6a21\u5757\u5316\u67b6\u6784\uff08Agent Builder\u3001BYO\u6a21\u578b\u3001MCP\u3001\u524d\u7aef\u52a8\u4f5c\uff09\u6784\u5efa\u4e86\u53ef\u6269\u5c55\u7684\u751f\u6001\uff0c\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u8ba9\u4f01\u4e1a\u201c\u4ee5\u6700\u5c0f\u8fc1\u79fb\u6210\u672c\u201d\u628aAI\u804a\u5929\u53d8\u6210\u4e00\u4e2a\u53ef\u63a7\u3001\u53ef\u5b9a\u5236\u3001\u53ef\u5ba1\u8ba1\u7684\u4e1a\u52a1\u7ec4\u4ef6\uff0c\u800c\u975e\u4e00\u4e2a\u9ed1\u76d2\u73a9\u5177\u3002\u5982\u679c\u63a5\u4e0b\u6765\u80fd\u5728\u6210\u672c\u76d1\u63a7\u3001\u7fa4\u804a\u534f\u4f5c\u3001\u591a\u7aef\u7edf\u4e00\u4e0a\u7ed9\u51fa\u5b8c\u6574\u65b9\u6848\uff0c\u5b83\u5c06\u4e0d\u53ea\u662fUI\u5de5\u5177\uff0c\u800c\u662fAI\u804a\u5929\u7684\u6807\u51c6\u5316\u57fa\u5ea7\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\">AI Agents in Chat<\/span>\n                <\/div>\n<div class=\"comment-content\">Your AI agent belongs in the chat you already built. CometChat&#8217;s iOS UI Kit lets you turn your existing messaging experience into an AI conversation with streaming responses, chat history, and a fully customizable UI built in. Connect your agent, match your brand, and ship without building AI chat from scratch.<\/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! <\/p>\n<p>Amit from CometChat here \ud83d\udc4b<\/p>\n<p>Every time someone tells us they&#8217;re adding an AI agent to their iOS app, the same thing happens. They think the hard part is the AI. It&#8217;s not. The hard part is that building a decent chat UI eats weeks you didn&#8217;t budget for. Message bubbles, streaming, history screens; none of it is <em>hard<\/em>, it&#8217;s just a slog, and it&#8217;s the slog nobody warns you about.<\/p>\n<\/p>\n<p>So we stopped watching people rebuild the same thing and put it in our iOS UI Kit.<\/p>\n<\/p>\n<p>You get the actual chat experience out of the box: streaming responses, suggested prompts, and conversation history so people can pick up an old chat instead of starting from zero every time. Wire up your agent, restyle it to match your app, ship.<\/p>\n<\/p>\n<p>It&#8217;s 1:1 AI conversations today. Agents in group chat is what we&#8217;re building next and if that&#8217;s something you&#8217;d actually use, tell me, because we&#8217;re deciding how far to push it right now.<\/p>\n<\/p>\n<p>If you kick the tires, I want to hear where it annoyed you as much as where it worked. We&#8217;ll be in the comments all day.<\/p>\n<\/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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The platform looks solid for bringing chat, voice, and video under one roof. One thing I&#8217;d love to see is a built-in branching or threaded transcript view for voice and video sessions, so it&#8217;s easier to jump back to a specific moment or quote during a follow-up. Right now most tools flatten that history, and it can be a real headache for support or sales teams reviewing calls 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\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ilk_l13311\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilk_l13311<\/a>&nbsp;that is quite something and I don&#8217;t want to hand-wave it. What you&#8217;re describing isn&#8217;t a small add or a feature behavior tweak. A branchable, navigable transcript where you can grab a specific moment and carry it into a follow-up is a real product surface: timeline, quote-linking, threading a call moment back into chat. Genuinely interesting, and not at all trivial \ud83d\ude42<\/p>\n<\/p>\n<p>Today: we&#8217;ve got live captions \/ transcription (\u03b2) for calls (English),  that&#8217;s the raw material the flow you&#8217;re describing would sit on, but it&#8217;s the groundwork, not the whole thing.<\/p>\n<\/p>\n<p>&nbsp;If you can walk me through how your team would actually move through it right from reviewing a support call, to pulling a sales quote, and what a &#8220;jump back&#8221; looks like in practice I&#8217;ll take that straight to the team. <\/p>\n<p>A concrete flow is worth far more than a feature request here. Really appreciate you thinking at this depth \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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Most platforms in this space want you to use their AI layer exclusively<br \/>so letting teams plug in their own agent logic without rewiring everything around new infra is a much friendlier <\/p>\n<p>especially when i do have my own workflow <\/p>\n<p>great work team <\/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>The iOS UI Kit angle feels very practical. Streaming responses and conversation history are exactly the parts that make an AI chat feel like a real product instead of a demo screen.<\/p>\n<p>For group support, I\u2019d be curious how you\u2019re thinking about agent handoff and context. Would multiple users be able to share one AI thread with the same history, or is the first version more about adding AI into existing group chats?<\/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 UI Kit part makes sense as the thing nobody wants to rebuild, but I&#8217;m curious about the layer above it: once the agent&#8217;s wired in, who&#8217;s watching the token spend? a chat UI invites people to just keep talking, and unlike a fixed feature, an LLM conversation doesn&#8217;t have a natural stopping point. is there a built-in per-user rate limit or cost cap on the agent side, or is that something the app builder has to bolt on themselves once real usage shows up?<\/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 ate our time wasn&#8217;t the bubbles, it was what happens when the stream dies halfway. iOS backgrounds the app, the socket drops, and you&#8217;re left with half an assistant message that the server thinks it finished sending. We moved to persisting server side and treating the client as a replay of a message id, which killed the duplicates but made resume feel slower. Where does the UI Kit keep the partial, and on reconnect does it resume the same message or start it over?<\/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>Dropping an agent into the messaging stack teams already shipped, instead of standing up a separate bot surface, is the right call \u2014 migration cost is usually what kills these integrations. One concrete thing: does the agent run through my existing CometChat conversations so it inherits the auth, moderation, and message history I already have, or is it a parallel agent service I wire up separately? And is the agent layer iOS-UI-Kit-only right now, or the same config across web and Android?<\/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 native Slack and Teams importer would be a huge win for anyone migrating from those platforms. Right now the switch feels heavier than it should, and losing years of chat history is a real blocker for teams considering CometChat as a replacement.<\/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\/@bnyaminndejjqk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bnyaminndejjqk<\/a>&nbsp;&nbsp;<\/p>\n<p>Okay this is the comment I was hoping someone would leave \ud83d\ude00<\/p>\n<\/p>\n<p>You&#8217;re describing two things: a real <em>replacement<\/em> for Slack\/Teams, and not losing your history in the switch. <\/p>\n<p>We&#8217;ve got both.<\/p>\n<\/p>\n<p>The replacement is <strong>CometChat Air<\/strong> \u2192 <a href=\"https:\/\/www.cometchat.com\/air\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/air<\/a> &#8211; team chat that never leaves your walls. Channels, DMs, threads, voice\/video with recording, full-text search, in-chat AI &#8211; self-hosted or fully air-gapped, built for teams that can&#8217;t put their conversations in someone else&#8217;s cloud. And because Air is aimed squarely at regulated environments, it&#8217;s built to the compliance bar those team actually need \u2014 ISO, HIPAA (with BAA), GDPR, AICPA\/SOC, PIPEDA, COPPA. <\/p>\n<p>If &#8220;considering CometChat as a Slack replacement&#8221; is the thought, Air is that product.<\/p>\n<\/p>\n<p>&nbsp;On the years of history, really not the blocker it feels like. Migration is <strong>white-glove<\/strong>: our team brings your existing messages, users, and groups across for you, so you land in Air with your past intact instead of a blank workspace. You don&#8217;t DIY it.<\/p>\n<\/p>\n<p>If you tell me where you&#8217;d be coming from (Slack? Teams?) and rough scale, I&#8217;ll get you connected to the right folks at CometChat.<\/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>Embedding agents directly into chat UI makes the interaction feel more natural than switching between tools. How customizable is the agent behavior from the developer side?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp;Thanks for seeing it the way we intended it \ud83d\ude42 <\/p>\n<p>On developer control, it goes pretty deep. <\/p>\n<p>Two ways in: build the agent natively in our <strong>Agent Builder<\/strong>, or <strong>bring your own<\/strong> (OpenAI, LangGraph, Mastra, CrewAI, Vercel\u2026) and run it headless or with our UI. It&#8217;s model-agnostic, so you can swap providers\/models without touching the customer experience.<\/p>\n<p>&nbsp;&nbsp;<br \/>Behavior itself is shaped by:<br \/>&#8211; <strong>Instructions<\/strong>: tone, guardrails, hand-off rules, how it should respond. You can @-mention specific tools\/MCP resources inline so the agent knows exactly when to use each one.<br \/>&#8211; <strong>Tools<\/strong>: call any REST endpoint, with templated context ({{uid}}, {{role}}, message metadata) injected into the request.<br \/>&#8211; <strong>MCP endpoints<\/strong>: connect external services\/knowledge bases for richer, live context.<br \/>&#8211; <strong>Frontend actions<\/strong>: the agent can drive your UI (open a modal, navigate, fire a notification), not just reply with text.<\/p>\n<\/p>\n<p>So it&#8217;s not a fixed bot you skin, it&#8217;s the behavior, the tools, the model, and how it acts on your app, all in your hands.<\/p>\n<\/p>\n<p>Docs if you want to dig in:&nbsp; &nbsp;<\/p>\n<p>&nbsp; &#8211; Overview: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents<\/a><\/p>\n<p>&nbsp; &#8211; Agent Builder: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/overview<\/a><\/p>\n<p>&nbsp; &#8211; Instructions: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/instructions\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/instructions<\/a><\/p>\n<p>&nbsp; &#8211; Tools: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/tools\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/tools\/overview<\/a><\/p>\n<p>&nbsp; &#8211; MCP: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/mcp\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/mcp\/overview<\/a><\/p>\n<p>&nbsp; &#8211; Frontend actions: <a href=\"https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/frontend-actions\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.cometchat.com\/docs\/ai-agents\/agent-builder\/frontend-actions\/overview<\/a><\/p>\n<p>What are you looking to build? Happy to point you at the exact layer.<\/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 that moderation is already baked in, that&#8217;s saved us headaches before. One thing that would seal the deal for me is a no-code webhook builder for routing events to tools like Zapier or Make, so non-dev teammates can wire up workflows without pinging engineering every 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\/@hasanfia0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hasanfia0<\/a>&nbsp;Thanks for the love \ud83d\ude42 Yes that was a very conscious decision from the early stages of our roadmap.<\/p>\n<p>The event plumbing is already there, webhooks fire on messages, user and group activity, calls, even moderation results, so the signal you&#8217;d want to route absolutely exists today. What&#8217;s missing is the part you&#8217;re actually pointing at: a no-code layer on top so a non-dev can wire &#8220;this event \u2192 that tool&#8221; without standing up an endpoint and pinging engineering every time. <\/p>\n<p>What are some workflows that you were thinking of solving?<\/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\/BIEXAJR4MME7SR\" class=\"app-title\">UltraPod<\/a><\/p>\n<div class=\"one-liner\">Turn your old iPhone into a music-first dumbphone<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">102<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>UltraPod \u5c06\u95f2\u7f6e\u65e7 iPhone \u53d8\u4e3a\u4ee5 Apple Music \u4e3a\u6838\u5fc3\u7684\u97f3\u4e50\u4f18\u5148\u201c\u529f\u80fd\u673a\u201d\uff0c\u4fdd\u7559\u5065\u5eb7\u3001\u76f8\u673a\u3001\u9605\u8bfb\u7b49\u5b9e\u7528\u5de5\u5177\uff0c\u5c4f\u853d\u793e\u4ea4\u4fe1\u606f\u6d41\u4e0e\u6ce8\u610f\u529b\u9677\u9631\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u65e0\u9700\u8d2d\u4e70\u65b0\u786c\u4ef6\u7684\u6570\u5b57\u6392\u6bd2\u65b9\u6848\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\/64ec1655-1d32-4c63-b179-08461bb134ce.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\/b98138f0-837e-4f85-8d4e-0e3c813d8ce8.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\/bbd9cae6-8aa4-415a-8036-fe689312dd05.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\/9368fceb-b10f-4007-b53a-6bfc0b627649.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\/d933d46e-4445-4172-8380-c29e02240f89.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\/4a5d71cd-0db3-493f-8d61-69db5b3d456d.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\/5e23c7b0-f4a5-46ad-bf68-be9df46d2bad.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\/f8a316c5-e189-44e9-9d50-fcfb70350b5a.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\/782016dd-94ac-4f22-af83-7d0ce76ce361.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\/f5293434-0caf-41bf-ab10-827aa7a95271.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/1517a2d77ea9439988c9c0497170fd45\"><source src=\"https:\/\/www.loom.com\/share\/1517a2d77ea9439988c9c0497170fd45\" 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\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Music<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6570\u5b57\u6392\u6bd2<\/span><br \/>\n            <span class=\"tag\">\u529f\u80fd\u673a<\/span><br \/>\n            <span class=\"tag\">\u65e7\u624b\u673a\u6539\u9020<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u64ad\u653e\u5668<\/span><br \/>\n            <span class=\"tag\">\u6ce8\u610f\u529b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u7269\u7406\u5916\u8bbe<\/span><br \/>\n            <span class=\"tag\">iOS \u9650\u5236\u7834\u89e3<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u7535\u5b50\u5783\u573e\u56de\u6536<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\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\u65e7\u673a\u518d\u5229\u7528\u7684\u73af\u4fdd\u4e0e\u5b9e\u7528\u6027\u3002\u6838\u5fc3\u53cd\u9988\u805a\u7126\u4e8e\uff1a**\u5982\u4f55\u5728\u4e0d\u4f9d\u8d56 iOS \u7cfb\u7edf\u7ea7\u9650\u5236\u4e0b\u5f3a\u5236\u6267\u884c\u4e13\u6ce8\u6a21\u5f0f**\uff1f\u5f00\u53d1\u8005\u56de\u5e94\u91c7\u7528 **3D \u6253\u5370\u78c1\u5438\u624b\u673a\u58f3** \u5b9e\u73b0\u7269\u7406\u9694\u79bb\uff0c\u5e76\u914d\u5408\u5feb\u6377\u6307\u4ee4\u5b9e\u73b0\u6572\u51fb\u80cc\u90e8\u5feb\u901f\u5207\u6362\u3002\u7528\u6237\u62c5\u5fe7\u77ed\u4fe1\/2FA \u901a\u77e5\u4f1a\u56e0\u4e13\u6ce8\u6a21\u5f0f\u88ab\u9519\u8fc7\uff0c\u5f00\u53d1\u8005\u627f\u8ba4\u9700\u7528\u6237\u4e3b\u52a8\u6458\u58f3\uff0810\u79d2\u5185\u53ef\u5207\u6362\uff09\u3002\u591a\u6570\u7528\u6237\u5efa\u8bae\u4fdd\u7559**\u76f8\u673a\u3001\u7b14\u8bb0\u3001\u79bb\u7ebf\u5730\u56fe**\u4f5c\u4e3a\u6838\u5fc3\u975e\u793e\u4ea4\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                UltraPod \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u8bd5\u56fe\u8bf4\u670d\u7528\u6237\u201c\u6212\u65ad\u667a\u80fd\u624b\u673a\u201d\uff0c\u800c\u662f\u6559\u4f60\u5982\u4f55\u7ed9\u65e7\u624b\u673a\u201c\u7a7f\u4e0a\u7d27\u8eab\u8863\u201d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u8f6f\u4ef6\u529f\u80fd\uff0c\u800c\u662f\u90a3\u4e2a **3D \u6253\u5370\u7684\u78c1\u5438\u624b\u673a\u58f3**\u2014\u2014\u8fd9\u662f\u6574\u4e2a\u4ea7\u54c1\u6700\u201c\u786c\u6838\u201d\u7684\u4ea4\u4e92\u8bbe\u8ba1\u3002\u5728 iOS \u5c01\u95ed\u751f\u6001\u4e0b\uff0c\u4efb\u4f55\u8bd5\u56fe\u901a\u8fc7\u8f6f\u4ef6\u5b9e\u73b0\u4e13\u6ce8\u7684\u65b9\u6848\u90fd\u4f1a\u9762\u4e34\u88ab\u7528\u6237\u81ea\u5df1\u201c\u4e09\u79d2\u5173\u95ed\u201d\u7684\u7a98\u5883\u3002\u800c\u7269\u7406\u5916\u58f3\u7684\u6469\u64e6\u611f\uff0c\u6070\u6070\u5229\u7528\u4e86\u4eba\u7c7b\u201c\u6015\u9ebb\u70e6\u201d\u7684\u5fc3\u7406\u5f31\u70b9\uff0c\u8ba9\u9000\u51fa\u4e13\u6ce8\u72b6\u6001\u6bd4\u8fdb\u5165\u5b83\u66f4\u75db\u82e6\uff0c\u8fd9\u624d\u662f\u771f\u6b63\u7684\u884c\u4e3a\u8bbe\u8ba1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u6765\u81ea\u8fd9\u4e2a\u5929\u624d\u8bbe\u8ba1\uff1a\u4e3a\u4e86\u4e0d\u4e22\u6389\u77ed\u4fe1\u548c\u9a8c\u8bc1\u7801\uff0c\u7528\u6237\u5fc5\u987b\u9891\u7e41\u6458\u58f3\uff0c\u8fd9\u6070\u6070\u4e0e\u201c\u4e13\u6ce8\u201d\u7684\u521d\u8877\u80cc\u9053\u800c\u9a70\u3002\u5f00\u53d1\u8005\u627f\u8ba4\u9700\u8981\u201c10\u79d2\u5185\u5207\u6362\u201d\uff0c\u4f46\u8fd9\u6070\u6070\u66b4\u9732\u4e86\u4ea7\u54c1\u7684\u601d\u7ef4\u5206\u88c2\u2014\u2014\u5b83\u65e2\u60f3\u5f53\u529f\u80fd\u673a\uff0c\u53c8\u4e0d\u6562\u5207\u65ad\u667a\u80fd\u624b\u673a\u7684\u6025\u6551\u901a\u9053\u3002\u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u7528\u6237\u53cd\u9988\u4e2d\u63d0\u5230\u7684\u201c\u5185\u7f6e\u5c0f\u7a0b\u5e8f\u201d\u548c\u201c\u793e\u533a\u6784\u5efa\u201d\u60f3\u6cd5\uff0c\u6b63\u4e00\u6b65\u6b65\u5c06 UltraPod \u63a8\u5411\u5b83\u8bd5\u56fe\u53cd\u6297\u7684\u201c\u5168\u80fd\u5e94\u7528\u5546\u5e97\u201d\u3002\u4e00\u65e6\u5b83\u5f00\u59cb\u8ba9\u7b2c\u4e09\u65b9\u5f00\u53d1\u8005\u5165\u9a7b\uff0c\u8fd9\u5c31\u4e0d\u518d\u662f\u4e00\u4e2a\u6570\u5b57\u6392\u6bd2\u5de5\u5177\uff0c\u800c\u662f\u53e6\u4e00\u4e2a\u201c\u7cbe\u7b80\u7248\u5e94\u7528\u5e02\u573a\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u672c\u8d28\u4e0a\uff0cUltraPod \u662f\u4e00\u4ef6\u5b8c\u7f8e\u7684**\u786c\u4ef6\u51cf\u8d1f\u914d\u4ef6**\uff0c\u5374\u62ab\u7740\u8f6f\u4ef6\u7684\u76ae\u3002\u5176\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201cApp \u505a\u5f97\u6709\u591a\u597d\u201d\uff0c\u800c\u5728\u4e8e\u201c\u5982\u4f55\u8ba9\u7528\u6237\u820d\u4e0d\u5f97\u5356\u6389\u65e7 iPhone\u201d\uff0c\u4ece\u800c\u5728\u73af\u4fdd\u548c\u6212\u763e\u4e4b\u95f4\u627e\u5230\u4e00\u6761\u6d88\u8d39\u4e3b\u4e49\u7684\u9003\u9038\u8def\u7ebf\u3002\u4f46\u82e5\u521b\u59cb\u4eba\u62b5\u6321\u4e0d\u4f4f\u6dfb\u52a0\u529f\u80fd\u7684\u8bf1\u60d1\uff0c\u8fd9\u4e2a\u201c\u7b2c\u4e09\u6761\u8def\u201d\u6700\u7ec8\u53ea\u4f1a\u6ca6\u4e3a\u901a\u5f80\u53e6\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u667a\u80fd\u624b\u673a\u7684\u5c94\u8def\u53e3\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\">UltraPod<\/span>\n                <\/div>\n<div class=\"comment-content\">UltraPod turns an old iPhone into a music-first dumbphone without abandoning the useful parts of a modern device. Stream with Apple Music, keep HealthKit workouts, reading, camera, and essential local tools, while stripping away social feeds and attention traps. It is a focused daily companion for people who want a digital detox without buying another piece of hardware.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I built UltraPod because the usual digital-detox choice felt unnecessarily extreme: keep a distracting smartphone, or buy a separate dumbphone and give up streaming music, health tracking, reading, and a good camera.<\/p>\n<p>UltraPod takes a third path. It gives an old iPhone a focused, music-first interface built around Apple Music, then keeps only the modern tools that genuinely add value: HealthKit-powered workouts, reading, capture, and a small set of local utilities. There are no social feeds and no engagement loops.<\/p>\n<p>The goal is not to make the iPhone less capable. It is to make it more intentional\u2014and to reuse hardware you already own. I would love to hear which essential, non-social function you would keep on your own dumbphone.<\/p><\/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\">Love this idea. Reusing an old iPhone instead of buying another device for a digital detox feels like a much more practical approach.<\/p>\n<p>I\u2019m curious\u2014what has been the biggest challenge? Keeping users focused while still allowing enough essential apps to make it usable every day?<\/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\/@minh_nguyen84\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@minh_nguyen84<\/a>&nbsp;Actually, this is the most interesting part. I designed a magnetic 3D-printed phone case. Once installed, you can only focus\u2014even if you want to browse TikTok, the protective case will make you give up. This isn&#8217;t a coercive measure, but the psychological hint will constantly remind you of unconscious behaviors, quickly interrupting addictive patterns. After launching in China, I had over 10 testers, and their feedback was quite effective. When you really need to work or want some appropriate entertainment, you can attach the phone to the back and return to the smart device.<\/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>cool idea Chris! I like the friction aspect of it. even a simple magnetic case is enough for our brain to give up on those behaviors. <\/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\/@gianmarco_speroni\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gianmarco_speroni<\/a>&nbsp; I came up with this idea while solving my own problems.<\/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 physical-case-as-the-real-lock detail is honest and makes sense given iOS won&#8217;t let you build a true restricted mode. the thing I&#8217;d want to know day-to-day: while the phone is in dumbphone mode under the case, do texts and calls still come through normally in the background, or does going music-first mean you&#8217;d also miss a 2FA code or an urgent text unless you pop the case off? that&#8217;s usually the dealbreaker for using something like this as your actual daily phone instead of a side device.<\/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; Yes, there must be compromises. There is no perfect solution yet, so the design of the phone case is crucial. Being able to switch within 10 seconds when the user needs it is the original design intention of my phone.<\/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>What do you think about the balance between reducing digital distractions and adding more functionality to UltraPod? At what point does a focused tool risk becoming another smartphone?<\/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\/@felipe_nery\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@felipe_nery<\/a>&nbsp; I&#8217;m already conceptualizing it. I&#8217;ve designed a mini-program feature inside it, where users can upload their own mini-programs (not yet open currently), which requires community building.<\/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\">@gigass Turning old hardware into a focused music and health device is brilliant! Offline navigation and emergency calls would be my top non social essentials.<\/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\/@tehreem_fatima5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tehreem_fatima5<\/a>&nbsp; The project is still being refined, haha. I&#8217;ve invested a lot of time in 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<div class=\"reply-item\">\n<div class=\"reply-content\">@gigass All that time invested really shines through in the execution! Rooting for UltraPod as you refine it further. Let us connect on LinkedIn so I can follow your journey!<\/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>Makes sense \u2014 and Guided Access is manual per session (triple-click to arm each time), so the real everyday enforcement is the case, not software. That actually fits the friction-nudge-not-a-lock philosophy you re going for. For v2, would you wire a Shortcut\/automation that arms Guided Access when the UltraPod app opens, so the software side matches the physical commitment?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp; I created a shortcut inside the phone where tapping the back of the device three times automatically enters the app and enables Guided Access mode, which has proven very effective.<\/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 such a clever reuse play. Just curious&#8230; what was the hardest iOS limitation to work around in turning a locked-down phone into a dedicated music device?<\/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\/@derrickshowers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@derrickshowers<\/a>&nbsp; It should be about input methods; developing a good built-in input method requires too much engineering effort. There&#8217;s also the issue with text messages being unable to access the iPhone&#8217;s internal data.<\/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 such a clever way to give old iPhones a second life. <\/p>\n<\/p>\n<p>I also really appreciate the pricing, it feels accessible, and the &#8220;Full Companion App&#8221; included in the Ultimate plan is a nice touch. <\/p>\n<\/p>\n<p>The only problem is&#8230; I wish I still had my old iPhone \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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@philipjpj\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@philipjpj<\/a>&nbsp;iOS 16 and above works perfectly, haha, I&#8217;m working hard to share this interesting project<\/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>Repurposing old iPhones for focused music listening is clever. Reduces e-waste and gives the phone new purpose. Does it work offline or needs internet connection for the music library?<\/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\/@abdurrahman_fakhrul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdurrahman_fakhrul<\/a>&nbsp; You can absolutely stream music online, listen to downloaded streaming content offline, or play local music files. You can even upload your local music to the appmusic cloud, with support for mixed playback. If you enter offline mode, undownloaded music will appear grayed out, won&#8217;t be included in shuffle queues, and direct playback will prompt you to connect to the internet. You can also search for online music within the app and add it to my favorites.<\/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 reuse angle is the strongest part for me. A separate minimalist device can become one more thing to buy, charge, sync, and justify. Turning hardware already in the drawer into a music-first tool is the more practical version of opting out: keep the parts that serve you, remove the parts that harvest attention.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Actually, just taking an old iPhone and turning it into a usable device is already appealing enough to people.<\/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 of repurposing an old iPhone this way, the HealthKit and camera retention is a really smart touch. One thing that would make it stick for me is a built-in bedtime mode that automatically locks the phone into reading or music only after a set hour, so the detox actually kicks in when willpower drops.<\/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\/@n_eslem68217\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@n_eslem68217<\/a>&nbsp;Actually, I&#8217;ve already developed part of the sleep mode functionality, which is easy to integrate. The project is still ongoing, and I want to create something even more interesting.<\/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 &#8216;third path&#8217; framing is what sells it \u2014 reusing an old iPhone instead of buying a separate dumbphone is the practical version of a detox. Since iOS won&#8217;t allow a true custom launcher, how does UltraPod actually enforce the music-first setup on day one \u2014 a configuration profile, Screen Time, Guided Access? And is going back to a normal iPhone a clean one-tap revert, or does it need a full reset?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;Similar to a launcher, the app is already live\u2014search for UltraPod. Combined with the magnetic 3D-printed phone case, you can switch between smartphone mode and dumbphone mode whenever you need to focus. The physical protective case keeps you continuously disconnected from information streams, helping you return to real life.<\/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 feels like the right middle ground. Music-first, no social feeds, but still keeping camera, workouts, reading, and local tools makes way more sense than buying another device just to escape your current one.<\/p>\n<p>For my own dumbphone, I\u2019d keep music, camera, notes, and maps. Everything else can fight for its place.<\/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\/@aditya_harish_2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aditya_harish_2002<\/a>&nbsp;The project is still in its early stages, and there&#8217;s a lot of work to be done before it reaches true perfection, but I feel this direction is absolutely 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thank&nbsp;you&nbsp;for&nbsp;building&nbsp;and&nbsp;sharing&nbsp;this&nbsp;\u2014&nbsp;I&nbsp;really&nbsp;love&nbsp;what&nbsp;you&#8217;ve&nbsp;made&nbsp;here.&nbsp;<\/p>\n<\/p>\n<p>To&nbsp;answer&nbsp;your&nbsp;question&nbsp;\u2014&nbsp;if&nbsp;it&nbsp;were&nbsp;me,&nbsp;I&#8217;d&nbsp;probably&nbsp;keep&nbsp;music,&nbsp;the&nbsp;camera,&nbsp;and&nbsp;notes&nbsp;for&nbsp;jotting&nbsp;things&nbsp;down.&nbsp;That&nbsp;combination&nbsp;alone&nbsp;already&nbsp;covers&nbsp;most&nbsp;of&nbsp;what&nbsp;I&nbsp;actually&nbsp;need&nbsp;when&nbsp;I&nbsp;want&nbsp;to&nbsp;step&nbsp;away&nbsp;from&nbsp;everything&nbsp;else. <\/p>\n<\/p>\n<p>UltraPod&nbsp;is&nbsp;such&nbsp;a&nbsp;lovely&nbsp;idea.&nbsp;It&nbsp;genuinely&nbsp;took&nbsp;me&nbsp;back&nbsp;to&nbsp;how&nbsp;things&nbsp;felt&nbsp;ten-plus&nbsp;years&nbsp;ago.&nbsp;In&nbsp;an&nbsp;era&nbsp;where&nbsp;we&nbsp;run&nbsp;into&nbsp;an&nbsp;endless&nbsp;flood&nbsp;of&nbsp;new&nbsp;things&nbsp;every&nbsp;single&nbsp;day,&nbsp;being&nbsp;able&nbsp;to&nbsp;shut&nbsp;out&nbsp;the&nbsp;noise&nbsp;and&nbsp;sink&nbsp;back&nbsp;into&nbsp;your&nbsp;own&nbsp;little&nbsp;world&nbsp;might&nbsp;be&nbsp;the&nbsp;real&nbsp;luxury&nbsp;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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kryptonite_wei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kryptonite_wei<\/a>&nbsp;Actually, I&#8217;ve already developed part of the sleep mode functionality, which is easy to integrate. The project is still ongoing, and I want to create something even more interesting.<\/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\">This is a great idea. It would be useful for parents who may want to pass on an old iPhone, without the socials. However can you still make calls?<\/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;Sure, I designed 3D-printed phone cases with magnetic attachment. When you need smartphone functionality, you can simply switch back to smartphone mode.<\/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\/VUAKN7AXTQ5KTO\" class=\"app-title\">AGINE Academy<\/a><\/p>\n<div class=\"one-liner\">A story-driven game for learning Claude by doing <\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">102<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AGINE Academy \u662f\u4e00\u6b3e\u5c06 Claude \u5b66\u4e60\u878d\u5165\u6545\u4e8b\u9a71\u52a8\u6e38\u620f\u7684\u4e92\u52a8\u5e73\u53f0\uff0c\u901a\u8fc7\u5b8c\u6210\u771f\u5b9e\u4efb\u52a1\uff08\u5982\u684c\u9762\u81ea\u52a8\u5316\u3001Claude Code\uff09\u89e3\u51b3\u7528\u6237\u201c\u770b\u5b8c\u6559\u7a0b\u5374\u4e0d\u4f1a\u7528\u201d\u7684\u75db\u70b9\uff0c\u8ba9\u6280\u80fd\u5b66\u4e60\u76f4\u63a5\u4ea7\u51fa\u53ef\u7528\u7684\u5de5\u5177\u6216\u81ea\u52a8\u5316\u811a\u672c\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\/08e87347-31de-41d2-b5f9-96d3255c2110.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\/cb23db4a-16f6-4987-9d12-3651aa35e306.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\/18aa4bcf-76cd-4812-82e2-68d86b1c3e80.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\/8af8ed0a-b0be-4d58-bad2-369708f9f49b.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\/a078f3ab-9ba6-4a25-9dab-18a94f22a554.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\">Productivity<\/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\u5b66\u4e60\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u6545\u4e8b\u9a71\u52a8\u6e38\u620f<\/span><br \/>\n            <span class=\"tag\">Claude\u5b9e\u6218<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u5f0f\u6559\u5b66<\/span><br \/>\n            <span class=\"tag\">Prompt\u5de5\u7a0b<\/span><br \/>\n            <span class=\"tag\">AI\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u6784\u5efa<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801<\/span><br \/>\n            <span class=\"tag\">\u6280\u80fd\u8fc1\u79fb<\/span><br \/>\n            <span class=\"tag\">\u4e92\u52a8\u6559\u7a0b<\/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\u540c\u5b66\u4ee5\u81f4\u7528\u548c\u6545\u4e8b\u5316\u8bbe\u8ba1\uff0c\u4f46\u6838\u5fc3\u8d28\u7591\u56f4\u7ed5\u5185\u5bb9\u65f6\u6548\u6027\uff08Claude\u66f4\u65b0\u5feb\uff09\u3001\u8bc4\u5206\u673a\u5236\uff08LLM\u88c1\u5224\u662f\u5426\u516c\u6b63\uff09\u3001\u6545\u4e8b\u8def\u5f84\u662f\u5426\u81ea\u9002\u5e94\u3001AI\u5bfc\u5e08\u8fb9\u754c\uff08\u80fd\u5426\u56de\u6eaf\u65e7\u77e5\u8bc6\uff09\uff0c\u4ee5\u53ca\u8bfe\u7a0b\u662f\u5426\u771f\u6b63\u652f\u6301\u201c\u96f6\u95e8\u69db\u201d\u6784\u5efa\u771f\u5b9e\u4ea7\u54c1\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                AGINE Academy \u7684\u4eae\u70b9\u4e0d\u5728\u4e8e\u201c\u6e38\u620f\u5316\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u89e3\u51b3\u4e86AI\u5de5\u5177\u6559\u5b66\u4e2d\u6700\u9690\u853d\u7684\u75db\u70b9\u2014\u2014\u884c\u52a8\u762b\u75ea\u3002\u7528\u6237\u4e0d\u7f3a\u6559\u7a0b\uff0c\u7f3a\u7684\u662f\u5728\u7a7a\u767d\u804a\u5929\u6846\u91cc\u6253\u51fa\u7b2c\u4e00\u53e5\u8bdd\u7684\u52c7\u6c14\u3002\u201c\u6545\u4e8b+\u4efb\u52a1\u201d\u7684\u8bbe\u8ba1\u672c\u8d28\u662f\u63d0\u4f9b\u4e86\u7ed3\u6784\u5316\u7684\u884c\u52a8\u811a\u624b\u67b6\uff0c\u628a\u6a21\u7cca\u7684\u201c\u5b66\u4f1aClaude\u201d\u62c6\u89e3\u621077\u4e2a\u6709\u660e\u786e\u4ea7\u51fa\u7684\u5fae\u884c\u52a8\uff0c\u8fd9\u662f\u5bf9\u6297\u201c\u770b\u5b8c\u5c31\u5fd8\u201d\u7684\u5b9e\u7528\u6b66\u5668\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u771f\u6b63\u7684\u4ef7\u503c\u6709\u5f85\u9a8c\u8bc1\u3002\u7b2c\u4e00\uff0c\u5185\u5bb9\u65f6\u6548\u6027\u662f\u786c\u4f24\u3002Claude \u66f4\u65b0\u5feb\uff0c77\u8282\u8bfe\u82e5\u4e0d\u80fd\u5b9e\u73b0\u9ad8\u9891\u81ea\u52a8\u8fed\u4ee3\uff0c\u5f88\u5feb\u4f1a\u4ece\u201c\u6700\u524d\u6cbf\u201d\u6ca6\u4e3a\u201c\u5386\u53f2\u8bfe\u201d\uff0c\u8fd9\u5bf9\u4f9d\u8d56\u8bfe\u7a0b\u6536\u8d39\u7684\u5546\u4e1a\u6a21\u5f0f\u662f\u81f4\u547d\u6253\u51fb\u3002\u7b2c\u4e8c\uff0c\u8bc4\u4ef7\u673a\u5236\u7684\u5751\u6bd4\u60f3\u8c61\u4e2d\u6df1\u3002\u8bc4\u8bba\u91cc\u63d0\u5230\u201cLLM\u88c1\u5224\u4f1a\u5956\u52b1\u957f\u7b54\u6848\u201d\u662f\u5178\u578b\u7684\u6280\u672f\u503a\u52a1\u2014\u2014\u5982\u679c\u73a9\u5bb6\u4e3a\u4e86\u5347\u7ea7\u800c\u6295\u5176\u6240\u597d\uff0c\u800c\u975e\u771f\u6b63\u7406\u89e3\u903b\u8f91\uff0c\u6e38\u620f\u5c31\u53d8\u6210\u4e86\u53e6\u4e00\u4e2a\u5bf9\u6297\u800c\u975e\u5b66\u4e60\u3002\u7b2c\u4e09\uff0c\u6545\u4e8b\u7ebf\u7684\u201c\u4f2a\u975e\u7ebf\u6027\u201d\u98ce\u9669\u3002\u7528\u6237\u8be2\u95ee\u8def\u5f84\u662f\u5426\u81ea\u9002\u5e94\uff0c\u5982\u679c\u53ea\u662f\u628a\u56fa\u5b9a\u7ae0\u8282\u5957\u4e0a\u5267\u60c5\u5916\u58f3\uff0c\u90a3\u548c\u4f20\u7edf\u8bfe\u7a0b\u5e76\u65e0\u672c\u8d28\u533a\u522b\uff0c\u53ea\u662f\u591a\u4e86\u4e2a\u673a\u5668\u4eba\u4f19\u4f34\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u7280\u5229\u7684\u62f7\u95ee\u662f\uff1a\u4ea7\u54c1\u662f\u5e2e\u4eba\u201c\u5b66\u4f1a\u7528Claude\u201d\uff0c\u8fd8\u662f\u201c\u5b66\u4f1a\u7528AGINE Academy\u201d\uff1f\u5982\u679c\u7528\u6237\u79bb\u5f00\u4f60\u7684\u5e73\u53f0\u4ecd\u7136\u5bf9\u7740\u7a7a\u804a\u5929\u6846\u53d1\u6035\uff0c\u90a3\u6240\u6709\u4efb\u52a1\u548c\u6545\u4e8b\u53ea\u662f\u5728\u73a9\u4f60\u81ea\u5df1\u7684\u6e38\u620f\u3002\u771f\u6b63\u7684\u6210\u529f\u6307\u6807\u4e0d\u662f100\u7968\uff0c\u800c\u662f\u7528\u6237\u79bb\u5f00\u540e\u80fd\u5426\u72ec\u7acb\u5199\u51fa\u4e00\u6761\u9ad8\u8d28\u91cfPrompt\u5e76\u8c03\u8bd5\u6210\u529f\u3002\u5f53\u524d\u8fd9\u6b3e\u4ea7\u54c1\u6709\u6210\u4e3a\u201cAI\u754c\u7684Duolingo\u201d\u7684\u6f5c\u529b\uff0c\u4f46\u5fc5\u987b\u72e0\u5fc3\u89e3\u51b3\u5185\u5bb9\u6c38\u7eed\u6027\u548c\u6df1\u5ea6\u8fc1\u79fb\u80fd\u529b\uff0c\u5426\u5219\u5c31\u662f\u4e00\u6b3e\u7cbe\u5fc3\u5305\u88c5\u7684\u201c\u9ad8\u7ea7\u6559\u7a0b\u201d\uff0c\u800c\u975e\u6539\u53d8\u8ba4\u77e5\u7684\u201c\u5b66\u4e60\u5f15\u64ce\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\">AGINE Academy<\/span>\n                <\/div>\n<div class=\"comment-content\">AGINE Academy makes learning Claude a story-driven game. You finish real missions inside Claude, from Desktop automations to Claude Code and your own products, with an AI mentor kept to each lesson. Every lesson leaves you a working result.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We built a game for learning Claude.<\/p>\n<p>AGINE Academy started with a problem we kept seeing: people watch AI tutorials, save a few prompts, and still freeze when they open an empty chat.<\/p>\n<p>We wanted learning Claude to feel like moving through a story, not sitting through another course. You complete short practical tasks and level up UNIT, a robot companion that grows as you learn. Every lesson ends with something you keep: a working tool, an automation, a configured skill.<\/p>\n<p>It starts at installing Claude Desktop and goes all the way up: Artifacts and Projects, connectors for your inbox and calendar, assistants and plugins, Claude Code, content, and building your own sites and products. 77 lessons so far, the first one is free and you can start without signing up.<\/p>\n<p>There&#8217;s an AI mentor inside each lesson, but it&#8217;s deliberately restricted to the current topic. We learned the hard way that a clever answer is useless when it has nothing to do with what the student is trying to finish.<\/p>\n<p>Students have already built real things with it \u2014 a marketplace CRM that auto-replies to reviews, AI sales agents on amoCRM, content factories, morning briefs that run on a schedule.<\/p>\n<p>Start with the free lesson: <a href=\"https:\/\/academy.agineai.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/academy.agineai.com\/<\/a><\/p>\n<p>We&#8217;re especially interested in where the game helps you keep going and where it gets in the way. If anything feels slow, confusing, or unnecessary, tell us directly.<\/p><\/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\/@konstantin_konovalov1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@konstantin_konovalov1<\/a>&nbsp;Claude changes fast, new features, workflows, even UI shift every few months. That&#8217;s the real challenge with any structured course in this space.<\/p>\n<p>How are you keeping 77 lessons current as Claude evolves? Is this continuously rebuilt, or do some lessons risk going stale between updates?<\/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 do the tasks get graded? An open prompt has a hundred passable answers, so if a model is scoring them, players quietly learn what the grader likes rather than what works. We ran an LLM judge over our own agent output for a few weeks and it turned out to be rewarding longer answers, which took ages to spot because the scores looked healthy the whole time. Is UNIT leveling up against a rubric you wrote, or against a model&#8217;s 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Are these prompt design challenges?<\/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>Learning-by-doing through a story framework is a smart way to teach something as open-ended as agentic coding \u2014 most tutorials just walk through static examples that don&#8217;t transfer well to real, messy codebases. I&#8217;ve been building my own product with Claude Code this month, and the actual skill gap isn&#8217;t syntax, it&#8217;s learning to write context-rich prompts and briefs. Curious how much of the game focuses on that &#8220;how to talk to the agent&#8221; skill versus more traditional coding concepts.<\/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>Story-driven learning for AI tools is actually smart approach, way more engaging than docs or tutorial videos. Is the content focused on Claude specifically or will it cover other models too?<\/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 this idea, I think you could introduce a lot more non-tech oriented users to Claude this way, or any other AI tools for that matter.<\/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>Learning by doing through a story format is a smart way to lower the intimidation factor of picking up Claude. How much of the &#8220;story&#8221; adapts based on what the learner actually does, versus being a fixed narrative path?<\/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 story-driven angle is great here. Making people finish real Claude tasks instead of just collecting prompts feels much closer to how this stuff actually sticks.<\/p>\n<p>Also like the choice to keep the AI mentor scoped to the lesson. That constraint probably matters more than it sounds.<\/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\">The &#8220;AI mentor restricted to the current topic&#8221; choice is smart most learn by doing tools let the AI just solve the task for you, which defeats the point. Curious how strict that restriction is in practice: if someone&#8217;s stuck on lesson 12 because of something they misunderstood back in lesson 3, does UNIT nudge them back to review, or just stay silent on anything outside scope?<\/p>\n<p>Also you mention students already shipped real things (marketplace CRM, sales agents on amoCRM). Are those built during the course itself, or do people finish the 77 lessons and then go build separately? Curious how much of &#8220;shipping something real&#8221; happens inside the game vs. after it.<\/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<\/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-22 PH\u70ed\u699c | 2026-07-22 #1 Humal [&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-290","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/290","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=290"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/290\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}