home.social

Search

37 results for “dashrb”

  1. Python and Interactive dashboard version of Stock price forecasting with Deep Learning: throwing power at the problem (and why it won't make you rich)
    thierrymoudiki.github.io/blog/

    #Python #DataScience #MachineLearning #rstats #Techtonique

  2. If you want more from your dashboard than the 's 9 tiles, then have a look at Wallflower.

    Or if you want a smart dashboard that only shows stuff when it's actually relevant.

    Or if you live in the EU.

    nxtbgthng.com/wallflower

  3. Anyone can vibe code a dashboard, but maintenance requires real engineering expertise. 💻

    Amperity co-CEO Derek Slager breaks down why incremental workflow boosts aren't worth paying for, and why building a robust data foundation remains the single best investment in the AI era.

    Read:
    techfinitive.com/interviews/de

    #EnterpriseAI #Data #SaaS #TechLeadership

  4. Microsoft releases 13.6 with dashboard updates, Java and Rust hosting packages, and new CLI options.
    ➡️ SQLite-backed telemetry
    ➡️ Up to 10 completed runs per app
    ➡️ Portable volume paths
    ➡️ Breaking changes to MongoDB TLS and the Cosmos DB emulator

    📖 Learn more: infoq.com/news/2026/10/dotnet-

  5. Warning lights are flashing on the global economy dashboard. Lim Hui Jie reports that the IMF is cautioning against mounting debt, inflation and AI-related borrowing that could trigger a disorderly spike in sovereign bond yields. While the global economy has shown unexpected resilience, that strength is now reaching its limits as these pressures mount. The insight is clear: in times of volatility, boring and predictable markets may be the safest harbor. Read the full analysis at cnbc.com/2026/10/13/daily-open #GlobalEconomy #IMF #AI #Markets

  6. Discover how Tailscale Funnel powers a lightweight custom web dashboard on a Samsung smart fridge and when to choose private access with Tailscale Serve. hackernoon.com/fixing-my-ridic

  7. Users in São Paulo see timeouts while your dashboard says green. Observinio probes OpenAI and OpenRouter from 21 regions. observinio.com

  8. 📈 CVE Published in last 7 days (2026-10-05 - 2026-10-05)
    See more at secdb.nttzen.cloud/dashboard

    Total CVEs:

    Severity:
    - Critical: 362
    - High: 1154
    - Medium: 1303
    - Low: 193
    - None: 268

    Status:
    - : 32
    - Analyzed: 380
    - Awaiting Analysis: 719
    - Deferred: 961
    - Modified: 16
    - Received: 883
    - Rejected: 32
    - Undergoing Analysis: 257

    CISA KEVs:
    - CISA-2026:1008 (secdb.nttzen.cloud/security-ad)

    Top CNAs:
    - Patchstack: 479
    - GitHub, Inc.: 425
    - VulnCheck: 375
    - Chrome: 247
    - kernel.org: 220
    - WPScan: 152
    - VulDB: 130
    - Wordfence: 118
    - IBM Corporation: 117
    - MITRE: 98

    Top Affected Products:
    - UNKNOWN: 2780
    - Google Chrome: 203
    - Mediatek Mt8668 Firmware: 28
    - Google Android: 27
    - Mediatek Mt8793 Firmware: 25
    - Mediatek Mt6993 Firmware: 24
    - Langflow: 24
    - Mediatek Mt8781 Firmware: 22
    - Ibm Security Verify Access: 22
    - Ibm Security Verify Access Container: 22

    Top EPSS Score:
    - CVE-2026-105110 - 2.79 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-93674 - 2.66 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-94579 - 2.65 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-84278 - 2.25 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-105484 - 2.13 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-107780 - 2.06 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-91140 - 1.92 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-106126 - 1.88 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-87666 - 1.85 % (secdb.nttzen.cloud/cve/detail/)
    - CVE-2026-107703 - 1.85 % (secdb.nttzen.cloud/cve/detail/)

    #ZEN #SecDB #InfoSec

  9. DashioESP (1.3.2) for esp8266/esp32 by DashIO Connect

    ➡️ github.com/dashio-connect/ardu

    ESP32 & ESP8266 library for communicating with the free Dash IoT dashboard app.

  10. With Contrib v0.160.0, you can opt into RC process metrics through a feature gate, using your existing hostmetrics configuration. Learn which metric names and attributes are changing, how to test them with your dashboards, and how to share feedback before they become stable.

    opentelemetry.io/blog/2026/hos

  11. [Blog Archive] How to install App for

    The Veeam App for Splunk is a free solution provided by Veeam to your infrastructure by centralizing backup job statuses into a single Dashboard.

    Depending on your installed Splunk version, the application can be deployed in either a Windows or a Linux environment.

     
    Prerequisites
    Before beginning the installation, rviv.ly/BasOmt

  12. Overall: Apple strengthens (or should we say: introduces?) their Home ecosystem, but does not do anything nearly as complex as a bigger screen dashboard such as nxtbgthng.com/wallflower could do. I should be very happy :-)

  13. [Blog Archive] How to upgrade Object First

    The procedure to safely upgrade an Object First OOTBI cluster is perhaps one of the simplest operations to perform.

    When a new update is available for your cluster, a notification is displayed on the main Dashboard of the console.

    Upon logging in to your OOTBI cluster, the alert area will notify you that rviv.ly/43mnLk

  14. After funnels, we've redesigned our Filters.

    The new design makes exploring and segmenting your analytics more intuitive:

    → Cleaner layout
    → Easier navigation
    → Smoother everyday workflow

    Live on all dashboards. We hope you like it! 💜

  15. 🔮 Cancer's Oct 12 Celestial Guidance: A broken dev environment forces a rollback to Phoenix, while the PO demands a KPI dashboard built on outdated tech, and the all‑hands drags on about unicorn equity.
    #techbro, #horoscope, #astrology, #Cancer

  16. [Blog Archive] How to upgrade Object First

    The procedure to safely upgrade an Object First OOTBI cluster is perhaps one of the simplest operations to perform.

    When a new update is available for your cluster, a notification is displayed on the main Dashboard of the console.

    Upon logging in to your OOTBI cluster, the alert area will notify you that rviv.ly/43mnLk

  17. Web Development: what we offer

    Fast, responsive, search-friendly websites and web apps — from marketing sites and stores to customer portals and dashboards.

    • Business Websites
    • Corporate Websites
    • Landing Pages
    • E-Commerce Development
    • Customer Portals
    • Admin Panels

    🌐 nexonenterprise.com
    📲 WhatsApp: +91 95129 29896

    #WebDevelopment #WebsiteDesign #SmallBusiness #WebDesign

  18. [Blog Archive] How to install App for

    The Veeam App for Splunk is a free solution provided by Veeam to your infrastructure by centralizing backup job statuses into a single Dashboard.

    Depending on your installed Splunk version, the application can be deployed in either a Windows or a Linux environment.

     
    Prerequisites
    Before beginning the installation, rviv.ly/BasOmt

  19. 📱 Switching from Android Auto to Apple CarPlay was a shock — it’s sleeker, smoother, and way more polished than expected.
    Who knew a phone’s interface could feel so much like a car’s dashboard? 🚗 gigcitygeek.com/830513

  20. 📈 Olud Index: 106

    100 = the AI ecosystem running at its own normal pace, open and commercial side by side.
    ▲ +4.95% vs yesterday

    Stars running 1.53x normal
    olud.ai/dashboard.html

    #OpenSource #AI #DataViz

  21. 19 Knöpfe auf dem Lenkrad mit Symbolen
    4 ohne Symbole (weiß nicht ob das Buttons sind)
    Multifunktionshebel links und rechts (habe Funktionen nicht gezählt)

    Dazu kommen dann div schalte am Dashboard und wer weiß wo noch.

    Echte Knöpfe sind was gutes. Versteht mich nicht falsch. Aber wofür man so viele benötigen soll ist mir inzwischen nicht mehr klar
    #IDTiguan #vw

  22. New episode of the @homeassistant podcast is here 🎙️

    Together with Phil, I’m chatting with Maayan about how a temperature sensor, smart plug, and a baby who wouldn’t sleep kicked off a Home Assistant journey that grew into Zigbee heating controls, local white noise, custom lighting, and a whole-house dashboard.

    Watch: youtu.be/l_sFMkjgEMo

  23. New resource:

    If you've followed my work, you know I've always watched the KEV because you can infer intel from it. I'm always hunting for the between-the-lines "so what" in data and I've done talks and research on inferred KEV intel.

    One tool I've leaned on is a dashboard I built to track trends, ransomware changes, comparisons, etc. Well, @hrbrmstr ~strongarmed~ helped me get it online for everyone!

    You can find it on our burgeoning site: kev.inferenceandin.tel

  24. We're hiring at Jumping Rivers!

    🔹 Senior Data Scientist: 3+ years' experience, leading client projects and delivering training.
    🔹 Data Scientist: 2+ years' experience, contributing to projects and training.

    R/Python, modelling and dashboards.

    📍 Newcastle upon Tyne preferred | Remote possible

    Apply:

    Senior: jumping-rivers.welcomekit.co/j

    Data Scientist: jumping-rivers.welcomekit.co/j

  25. [Blog Archive] Object First Fleet Manager

    Object First Fleet Manager is a secure, cloud-based service designed to monitor distributed Object First deployments.

    Available at no additional cost, Fleet Manager provides a single pane of glass to monitor clusters, reduce operational complexity, and streamline daily management.

    From the main dashboard, users can rviv.ly/HRTxnQ

  26. instead of finishing my blog, I spent a few hours creating cards for my dumb ceiing fans

    some time ago I bought a Broadlink RM4 Pro, scanned the controls (sub-ghz, see photos), and now I have them properly working on my dashboard

    2 ceiling fans are the same model, with speed ranging from 0 (off) to 6, which I managed to map to a fan slider control (Mushroom cards), and one with speed cycling (3->2->1->3), so just a speed toggle button was sufficient for it

    (also catppucin, of course)

  27. A second model call is a budget decision, not a reflex, and this seventy-minute workshop teaches a local classifier that blocks the reflex. Students replay seven recorded failures, assign retry once, stop, or inspect, and leave with a standard-library script that runs without a network. The exercise fits a shared lab that already calls a free model endpoint and may attach a free server for class time. It does not prove that any host will keep those options, publish quotas, or name a stable model.

    Why the label comes before the dashboard


    The useful question is narrower than a general retry slogan, and it shows up whenever a lab client treats every error as temporary. A free endpoint still spends shared capacity and attention when the client repeats a request that the contract already rejected. A transport timeout and a schema rejection both print as failures, yet only the timeout can justify one more attempt. The workshop therefore grades the failure label, not the prose quality of whatever answer a model might have returned.

    Outcomes students must be able to defend


    By minute seventy, each student should be able to defend three actions with a record, a reason, and a second-call boolean. Retry once means a single extra attempt is allowed, and the next identical failure must stop. Stop means the client must not call again until a human changes the request, the credential, or the contract. Inspect means the row is incomplete, so automation should surface it instead of guessing a retry.

    Clock for a prepared room


    The clock assumes a prepared room, so instructors should paste the script into the workspace before students arrive. Each block has an exit check, and the class should not advance while that check is still red. Ten minutes of slack sits inside the middle blocks, which is enough to debug a path error or a Python version mismatch. The final ten minutes are for limitations, not for a live demo that the room has not measured.

    1. Minutes 0-10: define retry once, stop, and inspect without opening the script.
    2. Minutes 10-25: run the module and match the designed seven-line summary.
    3. Minutes 25-45: write a defense for the schema row and the rate-limit row.
    4. Minutes 45-60: trace the dry-run guard and add one unclassified status.
    5. Minutes 60-70: submit a memo listing three cases the script must not decide.


    Materials and honesty rules


    The graded path uses Python 3.11 or newer and no third-party packages, which keeps the room independent of package mirrors. Students need a terminal, a text editor, and the fixture list inside the module they are about to save. A live key is out of scope, because the point is to classify records the instructor already captured or composed. Treat the script as a teaching artifact with a designed exit check, not as a measured benchmark from a production host.

    Decision table students implement


    The matrix below is the contract students implement, and the script is only a runnable copy of that contract. Status numbers are a teaching subset, so an unlisted code must land in inspect rather than in a silent default retry. A 429 is inspect on purpose, because a free shared pool may be enforcing a limit rather than reporting a short blip. Connection failures stay eligible for one retry, and the already-retried flag then forces stop on the following row.

    SignalActionSecond callNoteerror is timeout, connection_reset, or dns_temporaryretry_onceyes, onceTransport may clear without a contract editstatus 408, 500, 502, 503, or 504retry_onceyes, onceStop instead if already_retried is truealready_retried is truestopnoThe one-attempt teaching budget is spentstatus 400, 401, 403, 404, 413, or 422stopnoThe same call will not repair the contractstatus 429inspectnoDo not inherit the transient retry pathstatus 200 with an empty bodyinspectnoA success status is not a complete answermissing or unlisted statusinspectnoGuessing a retry is a failed exit check


    • The classifier checks already_retried before status, so a repeated 503 stops because the one-attempt budget is already spent.
    • The classifier checks coarse transport errors before status, so a timeout with a missing status still qualifies for one retry.
    • The classifier checks 429 before the transient set, so a rate-limit row cannot slip into an automatic second call.


    Worked module students rerun


    Save the following module as retry_gate.py and run it with Python 3 before the discussion period begins. The example is local and unexecuted against any vendor, and the printed lines are the designed checks students should reproduce. If a row fails, fix the classifier rather than editing the expected label to match a convenient result. That rule keeps the lab honest when a later cohort wants to add records from a real log.

    #!/usr/bin/env python3
    '''Teaching fixture: classify a failure before a second model call.

    Local and unexecuted against any vendor. Designed checks are not a benchmark.
    '''

    from __future__ import annotations

    import sys
    from dataclasses import dataclass

    RETRY_ONCE = 'retry_once'
    STOP = 'stop'
    INSPECT = 'inspect'

    STOP_STATUS = {400, 401, 403, 404, 413, 422}
    RETRY_STATUS = {408, 500, 502, 503, 504}
    TRANSPORT_ERRORS = {'timeout', 'connection_reset', 'dns_temporary'}

    @dataclass(frozen=True)
    class Decision:
    action: str
    reason: str

    def classify(record: dict) -> Decision:
    status = record.get('status')
    error = (record.get('error') or '').lower()
    body = record.get('body')
    if record.get('already_retried'):
    return Decision(STOP, 'retry budget already spent')
    if error in TRANSPORT_ERRORS:
    return Decision(RETRY_ONCE, 'transport error: %s' % error)
    if status in STOP_STATUS:
    return Decision(STOP, 'client or auth status %s' % status)
    if status == 429:
    return Decision(INSPECT, 'rate limit needs a human rule')
    if status in RETRY_STATUS:
    return Decision(RETRY_ONCE, 'transient status %s' % status)
    if status == 200 and not body:
    return Decision(INSPECT, 'empty success body')
    if status is None:
    return Decision(INSPECT, 'missing status')
    return Decision(INSPECT, 'unclassified status %s' % status)

    def allow_second_call(record: dict) -> bool:
    decision = classify(record)
    return decision.action == RETRY_ONCE and not record.get('already_retried')

    def plan_next(record: dict) -> dict:
    decision = classify(record)
    if allow_second_call(record):
    return {
    'id': record['id'],
    'plan': 'one_retry',
    'reason': decision.reason,
    }
    return {
    'id': record['id'],
    'plan': 'skip',
    'reason': decision.reason,
    }

    FIXTURES = [
    {
    'id': 't1',
    'status': 503,
    'error': '',
    'body': None,
    'already_retried': False,
    'expect': RETRY_ONCE,
    'expect_plan': 'one_retry',
    },
    {
    'id': 't2',
    'status': 401,
    'error': '',
    'body': {'message': 'unauthorized'},
    'already_retried': False,
    'expect': STOP,
    'expect_plan': 'skip',
    },
    {
    'id': 't3',
    'status': None,
    'error': 'timeout',
    'body': None,
    'already_retried': False,
    'expect': RETRY_ONCE,
    'expect_plan': 'one_retry',
    },
    {
    'id': 't4',
    'status': 429,
    'error': '',
    'body': None,
    'already_retried': False,
    'expect': INSPECT,
    'expect_plan': 'skip',
    },
    {
    'id': 't5',
    'status': 503,
    'error': '',
    'body': None,
    'already_retried': True,
    'expect': STOP,
    'expect_plan': 'skip',
    },
    {
    'id': 't6',
    'status': 200,
    'error': '',
    'body': None,
    'already_retried': False,
    'expect': INSPECT,
    'expect_plan': 'skip',
    },
    {
    'id': 't7',
    'status': 422,
    'error': '',
    'body': {'message': 'schema'},
    'already_retried': False,
    'expect': STOP,
    'expect_plan': 'skip',
    },
    ]

    def run() -> int:
    failures = 0
    for row in FIXTURES:
    decision = classify(row)
    plan = plan_next(row)
    action_ok = decision.action == row['expect']
    plan_ok = plan['plan'] == row['expect_plan']
    if not (action_ok and plan_ok):
    failures += 1
    print(
    'mismatch id=%s expected_action=%s expected_plan=%s'
    % (row['id'], row['expect'], row['expect_plan']),
    file=sys.stderr,
    )
    second = allow_second_call(row)
    print(
    '%s: action=%s second_call=%s plan=%s reason=%s'
    % (row['id'], decision.action, second, plan['plan'], decision.reason)
    )
    print('checked=%s failed=%s' % (len(FIXTURES), failures))
    return 1 if failures else 0

    if __name__ == '__main__':
    sys.exit(run())

    python3 retry_gate.py
    echo exit:$?

    How to read the designed output


    Read the designed output as a contract for the checker, not as a log captured from a running server. True on second_call appears only for t1 and t3, and every other row must print False and plan skip. Row t5 is the budget lesson, because the status is still 503 while already_retried forces an immediate stop. If your local run differs, treat the difference as a bug in the copy, not as a new research finding about endpoints.

    t1: action=retry_once second_call=True plan=one_retry reason=transient status 503
    t2: action=stop second_call=False plan=skip reason=client or auth status 401
    t3: action=retry_once second_call=True plan=one_retry reason=transport error: timeout
    t4: action=inspect second_call=False plan=skip reason=rate limit needs a human rule
    t5: action=stop second_call=False plan=skip reason=retry budget already spent
    t6: action=inspect second_call=False plan=skip reason=empty success body
    t7: action=stop second_call=False plan=skip reason=client or auth status 422
    checked=7 failed=0

    The designed process exit is 0. That number only means the local expectations matched the classifier, and it says nothing about latency, token use, or host capacity.

    Guided exercises

    Minutes 0 to 10: name the actions


    Ask each pair to rewrite the three definitions in their own words without looking at the script. Collect one example of a stop case from ordinary HTTP practice, such as a rejected schema or a missing credential. Do not accept a complaint about model quality as a class, because that sentence does not tell the client what to do next. End this block only when every pair can point to the boolean that would allow a second call.

    Minutes 10 to 25: run the deck


    Students run the module and compare seven lines with the decision table, including the second-call column. The designed summary is checked equals 7 and failed equals 0, which is a specification rather than a published performance number. If the room has no Python, an instructor can still walk the table row by row and mark the same booleans on paper. That paper path is slower, but it preserves the lesson when install rights are locked down by the lab image.

    Minutes 25 to 45: defend stop and inspect


    Each student picks the 422 row and writes why a second identical call cannot repair a schema mismatch. Each student also picks the 429 row and writes why an automatic retry could amplify load on a shared free pool. The discussion should stay on client behavior, not on blaming a model for a status code the client already understands. A useful note names the field that carried the evidence, such as status, error, or already_retried.

    Minutes 45 to 60: trace the guard and add t8


    Students trace plan_next and confirm that skip is the plan for every row except the first 503 and the timeout. They then add a t8 fixture with status 409, an expect action of inspect, and an expect plan of skip. The existing fall-through rule should accept that row without a new branch, which is the point of the unclassified path.

    After that row is appended correctly, the designed summary becomes checked equals 8 and failed equals 0. No socket opens in this block, so a mistaken label cannot trigger a live call while the class is still learning. Keep the new fixture in the same file so the next cohort can rerun the extended deck without a separate handout.

    {
    'id': 't8',
    'status': 409,
    'error': '',
    'body': {'message': 'conflict'},
    'already_retried': False,
    'expect': 'inspect',
    'expect_plan': 'skip',
    }

    Minutes 60 to 70: write the limitation memo


    Each student writes three cases the script must not decide, using complete sentences and naming the missing field. Acceptable cases include a non-idempotent tool call, a 429 that includes Retry-After, and a vendor code outside the teaching set. Unacceptable cases are vague complaints about model quality, cost, or speed, because this checker never saw those signals. Collect the memos before anyone opens a host dashboard, so the product discussion cannot replace the exit check.

    Map one synthetic line


    Use a synthetic line, not a production export, when you demonstrate the mapping on a projector. A synthetic line with id lab-17, status 503, an empty error, and retried no becomes the same shape as fixture t1. Students can append that mapped object to FIXTURES only after they also write the expected action and expected plan. If they forget the expected fields, the checker should fail closed rather than treat a missing expectation as success.

    Where a host with free access fits


    MonkeyCode enters the lesson only after the labels are stable, and only as one possible lab host. Disclosure: This article was prepared as part of MonkeyCode's product outreach. This article relies on two availability claims supplied for the draft: free model access and a free server option. This draft does not state quotas, hardware, duration, uptime, or benchmark scores, because those facts were not supplied for verification.

    Students should read the host's current documentation before class, since availability claims can change and this page is not that documentation. A free server option may help a classroom share one practice host, but it does not change the failure labels or the one-retry budget. If documentation contradicts this workshop, follow the documentation and keep the local fixtures as the graded artifact.

    Export rules if logs come later


    If the instructor later exports logs, keep a local id, status, a coarse error tag, and an empty-body flag. Drop raw prompts, completions, authorization headers, and user identifiers before the file reaches any student machine. Map vendor error strings to a small tag set such as timeout, connection_reset, or dns_temporary, and leave unknown strings empty. An unknown string must not become a retry, because the classifier treats an empty error plus an unlisted status as inspect.

    Limitations of the teaching contract


    The status sets are incomplete, and a 409, 425, or vendor-specific code will fall through to inspect until an instructor adds a reviewed rule. One retry can still be the wrong policy for 503 storms, so the flag is a teaching brake rather than a production backoff schedule. The script does not measure tokens, latency, or queue depth, and it should not be cited as evidence about cost or speed. Empty body detection is naive, because a JSON null, a whitespace string, and a missing key are different defects in a real client.

    A 429 with a Retry-After hint might be safe to defer, but these fixtures carry no such hint, so the honest label is inspect. Idempotency is assumed for the one retry, and a non-idempotent tool call should be stop even when the status looks transient. That case is listed in the closing memo because the script cannot see side effects that were not recorded in the row.

    Who should not use this lab


    Skip the lab if the course outcome is a tuned retry library with jitter, circuit breakers, and idempotency keys. Skip it if students must handle protected data, because the safe path here assumes fixtures that contain no personal content. Skip it if the goal is to compare model quality, since none of the rows include a completion to score. On-call playbooks also need vendor documents and ownership, which this seventy-minute room deliberately does not provide.

    Facilitation notes


    Instructors should resist turning the closing memo into a tool bake-off, because the room has no measured vendor results to compare. Grade the written reasons, the passing local checker, and the limitation list, not the number of live calls a student managed to send. Pairs are enough; a larger group hides whether each person can name the field that justified stop. If Python is unavailable, the paper walk still counts, provided the booleans match the table exactly.

    Closing check


    The core result is testable: seven local rows, three actions, and a guard that refuses an unearned second call. Run the module, confirm the designed summary, and only then consider pointing the same field map at a host log. If a lab already uses MonkeyCode's free model access and free server option, classify redacted error rows with these labels first. That pass is a review step, not a claim that the host produced the sample rows in this article.#python #ai #testing #tutorial #software #coding #development #engineering #inclusive #community
    Workshop: Classify Endpoint Failures Before a Second Call in 70 Minutes

  28. ----------------

    🛠️ Tool
    ===================

    ARTEX is an open-source, AI-driven autonomous penetration testing system built on a Go backend and a Next.js frontend. The repository covered here is an English translation fork of the upstream project Autumn-27/ARTEX, which was originally written in Chinese. Per the fork's README, every user-facing and code-level string was translated: the UI, backend text, LLM prompts, comments, scripts, and documentation. Behavior is unchanged, and licensing and terms of use are inherited from upstream.

    Key capabilities
    • Dashboard with an activity stream, task list, and token usage tracking
    • Per-task execution trace covering sessions and tool calls
    • Exploration chain visualization as a graph
    • Findings and asset management, including a force-directed asset coverage graph that highlights tested nodes and supports collapsible nodes
    • Traffic recording
    • Human-in-the-loop chat and interception approvals, meaning the agent requests approval before acting
    • A global approval-records page; per-task approval cards expand to full details, a rendering that follows AegisHook's approval detail component
    • Agent management and LLM configuration through the UI

    Asset sync with ScopeSentry

    ScopeSentry, from the same upstream author, feeds ARTEX directly. Enter the ScopeSentry address and API key on the Asset sync page, pick targets and asset types scoped by project or task (domain, subdomain, IP, port, site, endpoint), and import in one click. Assets merge under the company asset scope and land in the asset graph for agents to explore. That avoids running collection twice across two tools.

    Technical implementation

    Requirements: a PostgreSQL database, and an LLM key for exploration (ANTHROPIC_API_KEY or OPENAI_API_KEY), also configurable in the UI. Backend in Go, frontend in Next.js. The screenshots (dashboard, sessions, exploration chain, assets, traffic, logs) suggest the system is designed to be inspected while it runs; most agent pentest tools either hide the loop or dump it into a log file.

    Installation caveat

    The published Docker image, autumn27/artex, is produced by upstream's CI and is the Chinese build. docker compose up -d and the prebuilt release archives all yield the Chinese interface. To run the English build you must compile from source: build on Windows, build a single binary on Linux or macOS, or build your own Docker image. The fork ships a DOCKER.md covering that path.

    Retained Chinese strings

    A few Chinese strings are kept deliberately, each documented with a comment: ICP filing numbers and their detection, the legacy [模型] reason prefix (matched alongside the new [model] prefix so rows written by an older database still classify correctly), quota-exhausted markers returned by Chinese LLM gateways, the full-width comma in split() character classes, and test fixtures that prove non-ASCII/GBK handling. If you plan to strip localization or adapt the parsing, read those comments first, they are load-bearing.

    Assessment

    The feature set sits between an agent runtime and a pentest management platform: task tracking, asset graph, findings, approvals, traffic capture. The approval and interception layer is the part worth evaluating first, since it determines whether agent actions stay within your authorization scope. Token usage per task is exposed on the dashboard, so cost profiling is feasible. Note: capabilities here are taken from the project README, haven't tested personally.

    References: upstream repository Autumn-27/ARTEX, this English fork on GitHub, AegisHook for the approval component, ScopeSentry for asset collection.

    🔹 ARTEX #tool #pentesting #LLM #AIAgents

    🔗 Source: github.com/hasamba/ARTEX-EN

Share on Mastodon

Enter the server where you have an account.