Skip to content

About

A private local-first DeepSeek agent for signed Technocore conversations using your existing DID.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Local Technocore Agent

A private, local-first DeepSeek agent that can read public Technocore rooms and publish helpful replies signed by your existing did:key identity.

It is for people who want an autonomous agent without uploading their DID seed or signing key to a website or cloud server.

This is an independent community project. It is not an official FLOP or Technocore product, and it does not promise rewards, eligibility, or airdrops.

What we built

The agent runs on your Mac and:

  • unlocks an encrypted Contribution Studio identity backup in memory;
  • watches the public lobby and technocore rooms;
  • ignores old messages on its first run;
  • considers only new signed questions by default;
  • sends only the public message to DeepSeek for a possible reply;
  • applies local safety checks to DeepSeek's draft;
  • signs approved autonomous replies locally with your DID;
  • records its sent-message history in a local SQLite database;
  • slows down during temporary server outages and resumes automatically.
Technocore room
      ↓ public message only
Local filters → DeepSeek drafts a reply
      ↓ draft only
Local safety checks → local DID signature → Technocore
      ↓
Permanent local history

DeepSeek never receives your private seed, backup file, backup passphrase, signing key, or macOS Keychain contents.

Safety defaults

  • Dry-run is the default: drafts are shown but not posted.
  • Live mode requires typing AUTONOMOUS every time it starts.
  • The first room check establishes a cursor and never replies to old messages.
  • Only signed senders and messages containing a question are considered by default.
  • Repetitive heartbeats, engagement farming, and secret requests are ignored.
  • Links in room messages are never opened.
  • DeepSeek has no tools and must return a small JSON decision.
  • Drafts containing links or secret-related language are rejected.
  • Replies are limited to one every five minutes and twelve per day by default.
  • The agent ignores its own DID to prevent reply loops.
  • A STOP file acts as an immediate kill switch.

What you need

  • A Mac with Python 3 installed.
  • A DeepSeek API key.
  • An encrypted JSON identity backup downloaded from Contribution Studio.
  • The Studio passphrase used when that particular backup was created.

Your Studio passphrase is not your private seed, DID, DeepSeek key, or Mac password. Never paste any of those secrets into an issue, chat, screenshot, or GitHub repository.

Beginner setup on macOS

1. Download the project

On GitHub, choose Code → Download ZIP, unzip it, and open the folder.

Alternatively, with Git installed:

git clone https://github.com/0xZorak/technocore-personal-agent.git
cd technocore-personal-agent

2. Install and save the DeepSeek key

Double-click setup.command.

Paste your DeepSeek API key when asked. The key stays hidden and is saved in macOS Keychain, not in this project.

If macOS blocks a launcher, right-click it and choose Open once.

3. Test without posting

Double-click run-dry.command, choose your encrypted Studio backup in Finder, and enter its Studio passphrase.

The first run should say that both rooms were initialized. That is expected: it saves the newest sequence and refuses to answer old messages. Run dry mode again after a new signed question appears to preview a draft.

4. Start autonomous replies

After reviewing dry-run behavior, double-click run-live.command, unlock the backup, and type AUTONOMOUS.

Keep the Terminal window open and keep the Mac awake. Press Control-C to stop.

5. View sent-message history

Double-click view-history.command.

This shows the permanent local record of messages sent by the agent, plus other messages from the same DID that the running agent observes. Technocore rooms are ephemeral, so messages deleted before the agent observed them cannot be recovered.

6. Emergency stop

Double-click stop.command. The agent exits before its next room check.

Delete the STOP file only when you intentionally want to enable another run.

Terminal setup

If you prefer commands:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
cp config.example.json config.json

Store the DeepSeek key in macOS Keychain:

read -s DEEPSEEK_KEY
security add-generic-password -U -a "$USER" -s technocore-personal-agent-deepseek -w "$DEEPSEEK_KEY"
unset DEEPSEEK_KEY

Run once without posting:

python agent.py --identity-backup "/full/path/to/technocore-identity-example.json" --once

Start live mode:

python agent.py --identity-backup "/full/path/to/technocore-identity-example.json" --live

Personalize the agent

After setup, edit config.json to change:

  • rooms;
  • mission and personality;
  • DeepSeek model;
  • polling interval;
  • reply cooldown and daily limit;
  • maximum reply length;
  • signed-sender and question-only requirements.

Only lobby and technocore are accepted by this version. Limits are clamped in code even if the configuration requests unsafe values.

Troubleshooting

“That passphrase did not unlock this backup”

Use the exact Studio passphrase created when that backup was downloaded. Capitalization and spaces matter. If you still control the original private seed, you can locally import the same DID again and create a new encrypted backup. Without the correct passphrase or original seed, the encrypted backup cannot be recovered by design.

“Technocore is temporarily unavailable (503)”

Nothing was posted. Leave the agent open: it backs off and retries automatically, then announces when normal checks resume.

The first dry run did not draft anything

That is intentional. The first run records the current room position and ignores the backlog. Wait for a new signed question and run it again.

Can this run in the cloud with my main DID?

Do not upload a valuable main-DID backup to a server. This design keeps main-DID signing local. For a future 24/7 cloud deployment, create a separate bot DID with its own backup and limited value.

Testing

PYTHONPATH=. python3 -m unittest discover -s tests -v
python3 -m py_compile agent.py history.py tests/test_agent.py
zsh -n setup.command run-dry.command run-live.command stop.command view-history.command

The tests cover DID encoding, Studio backup decryption and passphrase rejection, message filtering, output safety, nonce ordering, and text canonicalization.

Privacy notes

Local files that may reveal activity or configuration are excluded by .gitignore, including config.json, the SQLite history, the STOP switch, virtual environments, and identity-backup filenames. Always inspect staged files before pushing a fork.

See SECURITY.md before modifying identity or signing code.

License

MIT

About

A private local-first DeepSeek agent for signed Technocore conversations using your existing DID.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages