ARMANOS

Solutions

Freelance

Upwork, Fiverr and Freelancer accounts kept apart: one profile per account, with its own proxy, its own device readings and its own cookies. One session follows you from the laptop to the desk, encrypted, through a folder you already own.
3
portals the scenario names: Upwork, Fiverr, Freelancer
6
daily ceilings it carries, ramped over the first week
AES-256-GCM
the session file that travels through your folder
1
machine may hold one profile open at a time

Every client account is a separate machine, not a separate tab

Freelance work spreads across accounts. Your own Upwork profile, a second account you run for an agency, a Fiverr seller account, a Freelancer account opened for a client in another country. Each one carries its own history, and every platform behind them reads two accounts opened in one browser as one person.

The usual answers separate less than they look. Incognito mode forgets cookies when the window closes, and while it is open it reports the same screen, the same graphics string, the same fonts and the same clock as the window beside it. A VPN changes the address you come out of and nothing about the device. A second profile in an ordinary browser divides cookies and shares everything the machine says about itself.

In ARMANOS a profile is a browser of its own. Cookies and site storage live in a directory that belongs to that profile alone, the proxy is a property of the profile, and the device readings are derived from the profile id, so the same profile answers the same way at every launch. The readings come from generation 4 of the generator and one of five templates, and our engine, ARMANOS Browser 153.0.7978.0, gives them itself, before any script on the page runs.

This matters most where your accounts already differ. An account you opened from Berlin should keep a Berlin clock and a Berlin address for as long as it lives. A profile holds that combination together, launch after launch, and none of it leaks into the profile you use for your own work.

  • Cookies and site storage

    Each profile writes into a directory of its own, and nothing reads across the boundary.

  • The exit address

    A proxy belongs to the profile. If a proxy is set and cannot be applied, the profile refuses to open instead of going out from your home connection.

  • Clock and language

    Both follow the exit country: 114 countries carry a matching timezone and a matching language list.

  • Device readings

    Screen, cores, memory, graphics strings and the font set come from one template and one seed, the profile id.

  • Extensions

    Each profile has its own enabled set, chosen from a catalog of 11 inside the app.

  • Sign-in details and one-time codes

    The account password is sealed by the system keychain, and the code generator follows RFC 6238, so the second factor lives with its profile.

The Browser engine screen with ARMANOS Browser selected and the built-in Chromium listed as the fallback.
Profiles run on ARMANOS Browser, a patched Chromium 153 that substitutes the fingerprint inside the engine. The built-in Chromium stays as a fallback, and the app says when a profile falls back to it.

The Freelance scenario fills the profile in the moment you create it

The scenario is one choice in the profile creation window, and Freelance is one of the five offered. It is not a label. It decides what runs inside that profile from the first launch, and it can be seen in the code as a single record with a start page, a script set, a tracker list and six ceilings.

It sets the start page to Upwork, and a profile that carries an address of its own keeps that one. It turns on two injected pieces: the fingerprint one, which keeps the readings consistent inside the page, and a small one that suppresses the beacon call sites use to fire trackers as you leave a page.

It attaches the general tracker list, 31 hosts refused at the network layer rather than hidden inside the page, and it turns on link cleaning. On every top-level navigation, 40 tracking parameters are stripped out of the address, the click identifiers of the large ad networks among them.

And it carries six daily ceilings: the numbers this scenario treats as a safe day for a freelance account. They sit on the profile card, beside today's page count, and they shrink for a profile created this week.

ActionA safe dayDay 1 of a new profile
Proposals102
Messages255
New gigs31
Profile edits51
Payout edits11
Account switches11

These numbers are ours, not the platform's

No portal publishes the thresholds it enforces. These are the pace this scenario treats as safe, and the app shows them next to the profile. It does not count your proposals or your messages for you, and it never blocks an action.

A new profile spends its first week going slower

A profile created today is not treated like one that has been working for three months. The freelance scenario carries a daily ceiling of 40 actions, and a new profile reaches the full number on day seven.

The ramp is 20, 35, 50, 65, 80 and 90 percent of the ceiling over the first six days, and the whole ceiling from day seven onward. The same curve moves the six per-action ceilings, with one floor rule: an action the scenario allows never ramps down to zero, so day one still shows at least one.

What the app counts is narrow, and saying so is the only honest label for the bar. An action is a top-level page opened in that profile's windows. The count resets with the calendar day, the bar turns amber at 80 percent of the day's ceiling and red at the ceiling, and it stops nothing. The age it shows is the age of the ARMANOS profile, not of the account behind it, because the app cannot know when you opened that account.

Day 1
8 actions
Day 2
14
Day 3
20
Day 4
26
Day 5
32
Day 6
36
Day 7 and after
40

The ramped ceiling for a freelance profile, counted per profile, per day.

The Profiles screen: cards showing a group, a proxy, today's safe pace and the per-action daily ceilings.
The pace and the ceilings sit on the card itself, with the warm-up day named. The cards in this shot are e-commerce profiles; a freelance profile lists proposals, messages, new gigs, profile edits, payout edits and account switches.

Three portals by name, and a region behind each account

The scenario names three portals: Upwork, Fiverr and Freelancer. Across the five scenarios in the app, twenty platforms are named this way, and the naming is the modest part of it.

Naming is not automating. Nothing about Upwork is built into the profile beyond the start page and the wording of the ceilings. What you get is an ordinary browser window with an identity of its own and a session that belongs to it. If you want steps repeated, that is the automation builder, and it works the same way on any site.

The region is the second half of the job. A profile carries its own proxy, and the exit country is resolved over TLS from four providers rather than one, because a single free endpoint starts refusing during a bulk launch. The answer decides the profile's clock and its language list, so an account on a German address does not sit in your own timezone while claiming to be in Berlin.

If a profile has a proxy set and it cannot be applied, the launch is refused outright. Opening it directly would show that account your home address, which is the one thing a separated profile must never do.

Proxy exit
Germany
Time zone
Europe/Berlin
Languages
de-DE, de, en
Template
windows-chrome
Generation
4

One of the 114 country entries that pair an exit country with a timezone and a language stack.

  • Upwork

    The scenario's start page. A profile that carries its own address opens there instead.

  • Fiverr

    Named by the scenario. The profile is a normal browser window on it, with its own cookies and its own device.

  • Freelancer

    Named by the scenario. Nothing about the portal is automated for you by choosing it.

  • A region per account

    The exit country sets the timezone and the language list, and the country is remembered on the profile until the address changes.

Your laptop and your desk share one session through a folder you own

Cookies do not live on our server. Only settings travel there, and the session, the thing that keeps thirty accounts signed in, sits in the profile directory on the machine where you worked. Moving to the second computer used to mean signing in everywhere again, which is the exact work this product exists to remove.

So you point ARMANOS at a folder your own cloud already syncs: Dropbox, iCloud Drive, a network disk, whatever you use. We do not host it and do not need to know which one it is. Each profile leaves as a single encrypted file: scrypt to stretch the password, then AES-256-GCM. The password is at least eight characters, it stays on this machine, sealed by the system keychain when the system offers one, and it never goes into the folder.

What a person with access to that folder can see is deliberately thin: a file named by the profile id, and a small label beside it holding a time, a size and the machine name you typed. The profile's own name stays inside the encrypted file, because a name like "Upwork, client B" tells a reader which accounts you run.

The exchange happens by itself at three moments: before a profile opens, a few seconds after it closes, and once when the app starts, so work you closed in a hurry is not left behind. You can also send or take everything by hand. An open profile is never packed: its databases are being written by the running browser, and a copy taken mid-write is a broken profile on the other machine.

  1. 1

    You close the profile on the laptop

    Four seconds later the app checks that it is still closed, packs the session and writes it. Caches are left out, since they are hundreds of megabytes and sites refill them; the packed file has a 400 MB ceiling.

  2. 2

    The write is atomic

    A neighbouring temporary file first, then a rename, so the cloud never picks up half a session. Leftovers from an interrupted write are swept after an hour, and only ones we recognise as ours.

  3. 3

    The label is written after the file

    It carries the same instant and the exact byte size. That pair is how the other machine tells a finished upload from a label that arrived ahead of its file.

  4. 4

    The other machine notices on its own

    Once a minute it reads the folder's own timestamp, and only when that changed does it read the labels. A profile changed elsewhere is marked in the list, and nothing is pulled into a profile you have open.

  5. 5

    You open the profile there

    The fresh session is put in place before the window exists, and a notice names the machine it came from. Swapping files under a running browser would corrupt the profile, so the order is not negotiable.

Keep both machines on the same version

A profile created by a newer build refuses to open on an older one. Generating its readings with an older generator would present the account a different computer, so the launch stops and asks you to update instead.

When both computers changed the same session, nothing is overwritten

Two machines can both change one session. The app decides by comparing two things it owns: the session's own timestamp against the timestamp it remembered at the last exchange, and the folder's label against the label it last saw there. The clocks of two machines are never compared against each other, because they disagree.

When both sides changed, nothing is touched. A notice names the other machine, the profile still opens with the session it has here, and the choice waits for you in "Session in the folder" in the profile menu. Sending yours keeps a dated copy of what it replaced, and three of those are kept per profile, so a click made without thinking is not a lost day.

Nothing is ever merged. Two halves of one login blended together is not a session, it is a broken one. You keep one side, and the other stays in the folder as a copy the exchange ignores.

The cloud makes its own mess, and the app names it rather than guessing. A label whose file has not arrived yet, or a file the cloud moved off the disk to save space, means nothing is done this round instead of a stale session being taken. Copies the cloud itself creates when both machines wrote at once, the ones ending in a number, in "conflicted copy" or in an appended machine name, are reported to you once each.

What changed since the last exchangeWhat the app does
NothingNothing. The profile is in sync.
Only on this machineThe session is packed and written to the folder.
Only in the folderThe session is taken before the profile opens.
Both sidesNothing is overwritten, and you choose which side to keep.
The folder is empty for this profileThe first send fills it.
The label is newer than its fileNothing this round. It is taken once the cloud finishes copying.

Changing the password resends everything

Files already in the folder are encrypted with the old one. The app forgets what it had sent, so every profile goes up again under the new password, instead of leaving a folder that mixes two and a second machine that cannot open half of it.

One profile stays in one pair of hands

A profile open in two places at once is the thing you bought this to avoid. Two live sessions of one account from two addresses is exactly the pattern that gets accounts blocked, so the app refuses to produce it.

While you are signed in, the server holds the lock, because the two machines cannot see each other. Opening a profile claims it, the app renews it every minute, and closing the last window releases it at once. A machine that loses power does not hold a profile forever: the lock lapses on its own after three minutes.

The second machine gets a refusal that names the holder and the moment it started, not a silent failure. You can take the profile over deliberately, after a warning that says plainly what two sessions mean. The previous holder's windows are then closed on that machine, with a notice explaining why, which is better than two windows quietly working against one account.

Without an account there is no lock and there cannot be one: nothing connects the two machines. The folder exchange still works in that case, and this is the honest boundary of the feature rather than a detail we leave out.

  1. 1

    The lock is claimed

    Before any window exists. Claiming it after the window opened would mean the second session already happened and we only learned about it afterwards.

  2. 2

    Quota and access are checked

    A profile beyond the plan you pay for, or one whose access was revoked, is refused in the server's own words rather than opened anyway.

  3. 3

    The fresh session is taken from the folder

    Only now, with the other machine known to be out, and only into a browser that has not started yet.

  4. 4

    A new exit address, if the profile asks for one

    If the rotation fails, the launch stops and the lock is released, because opening on the old address is what that profile was set to avoid.

  5. 5

    The window opens and the lock is renewed each minute

    If it is taken over elsewhere, the windows here close and you are told why. On close, the lock is released and the session goes back to the folder.

Why we are strict about this one

Everything else on this page is about keeping accounts apart. A tool that let two people open one account at the same time would do the very thing it is sold to prevent, so the refusal is loud and the takeover is a conscious act.

What this does not do

  • The folder is yours, not ours. If your cloud app is not running or the disk is not mounted, nothing travels, and we cannot recover a session we never hold.
  • Sessions move only when a profile is closed. A machine left with windows open all day sends nothing until they close.
  • Nothing is merged. When both sides changed, you keep one side and the other stays as a dated copy beside it.
  • The lock needs an account and a reachable server. Signed out, or with the server unreachable, the launch is allowed rather than blocked, and two machines can then open one profile. Signing in on two computers also takes two device seats: the free plan has one, Professional two, Business five.
  • The ceilings are advice. The app counts pages opened in a profile, not proposals or messages, and no portal publishes the numbers it actually enforces.
  • Isolation is not a clean record. Platforms also weigh account age, payment details, client history and what you write. A separate profile does not make a new account trusted.

How to check

Every line above is held by code in this repository and by a stand that runs it.

The Freelance scenario really carries these numbers and this ramp
packages/shared/src/index.js (SCENARIOS.freelance, WARMUP_RAMP) · apps/desktop/src/main/main.js (paceInfoFor, actionLimitsFor)
A closed profile's session travels encrypted, and an open one is never touched
apps/desktop/src/lib/sessionSync.js · apps/desktop/test/session-sync-folder.js
When both sides changed, nothing is overwritten and the replaced copy is kept
apps/desktop/src/main/main.js (keepReplacedCopy) · apps/desktop/test/conflict-keeps-copy.js
A file the cloud moved off the disk is not read as "no session"
apps/desktop/src/lib/sessionSync.js (readRemoteMeta) · apps/desktop/test/cloud-evicted-file.js
The copies the cloud itself makes are noticed and named once each
apps/desktop/src/lib/sessionSync.js (cloudConflictCopies) · apps/desktop/test/cloud-conflict-copies.js
One profile opens in one place, and a takeover closes the other windows
apps/server/src/profiles/profiles.service.ts (LOCK_TTL_MS) · apps/server/test/profile-lock.js · apps/desktop/test/profile-busy.js

Two profiles, free, with no card

Install ARMANOS, make an Upwork profile and a Fiverr profile, and read what the start page reports about each of them.